不安全的 JavaScript 尝试启动带有 URL 的框架的导航更改 - 如何尝试捕获它
Unsafe JavaScript attempt to initiate a navigation change for frame with URL - How to try catch it
我的iframe中有这个脚本:
var redirectTo = "http://www.stackoverflow.com";
try {
parent.location.href = redirectTo;
}catch(e){
window.open(redirectTo);
}
浏览器不会捕获主题中的错误。
我希望浏览器在 try 块失败时执行 catch 块。
但是,即使错误发生在 try 块内,浏览器仍然会看到错误。
更新在正常情况下,我的代码工作正常。
当它的 iframe 在 iframe 内时它不起作用,在这些情况下我遇到了安全错误。
你知道Y吗?我如何知道我的 iframe 是否在其他 Iframe 中?
谢谢
您无法在javascript中捕获此类错误,因为它不是javascript错误,而是浏览器安全功能。但是您可以通过检查 url 和当前位置之间的域和端口匹配来防止它。此外,如果父框架与 iframe 的域/端口不同,则无法访问父框架。因此,如果父帧域/端口与子 iframe 不同,除非您已经从其他来源知道它,否则您甚至可能无法获得该位置。你试图做一些你真的不应该做的事情
(更新(检查父节点
var ploc=null
try {
if (parent && parent.nodeName=="IFRAME")
ploc=parent.location;//assuming current node is an iframe
}catch(e){
//it may be an iframe but from another domain
}
if (ploc) ... //ok its an iframe and is from same domain the we can proceed
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 正在尝试使用if和else添加类,但无法正常工作
- angular 1.5应用程序中的导航栏
- 无法从jquery Mobile导航栏重定向到另一个页面
- 尝试添加一个按钮,每次按下按钮时都会更改导航栏的背景颜色
- 尝试在滚动子导航时保持父导航处于活动状态
- 不安全的 JavaScript 尝试启动带有 URL 的框架的导航更改 - 如何尝试捕获它
- 如果按“链接”然后按钮是白色而不是灰色,如何进行主动导航,这是我尝试 jsfiddle.net/egjg14fr/ 的代
- 我正在尝试让我的导航菜单向左滑动并用它推动身体
- 具有更多链接的引导导航.尝试使用 jquery 找到解决方案
- 滚动后,尝试在导航栏的背景色中淡入淡出
- Cordova-不推荐尝试访问属性'userAgent'在非导航器对象上
- 使用自定义对话框提示用户尝试使用未保存的数据进行导航
- 正在尝试使用引导导航栏切换
- 尝试选择导航栏的最后一个元素
- 尝试制作平板电脑网站的导航栏
- 当用户尝试刷新/关闭/导航到另一个网页时,显示确认对话框
- Nodejs / express - fresh install在尝试导航到路由时失败
- 尝试导航时模型方法错误
- 尝试使用TypeScript为一个简单的导航栏实现一个面向对象的设计模型