Javascript 防止iframe破坏会杀死站点上的所有链接
我在下面有一个脚本,它确实阻止了iFrame崩溃,但它也杀死了我页面上的每个链接。如何防止脚本禁用我的所有链接Javascript 防止iframe破坏会杀死站点上的所有链接,javascript,iframe,Javascript,Iframe,我在下面有一个脚本,它确实阻止了iFrame崩溃,但它也杀死了我页面上的每个链接。如何防止脚本禁用我的所有链接 <script> var prevent_bust = 0 window.onbeforeunload = function() { prevent_bust++ } setInterval(function() { if (prevent_bust > 0) { prevent_bust
<script>
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
// 204 header response prevents redirect
window.top.location = '/204-response'
}
}, 1)
</script>
var\u bust=0
window.onbeforeunload=函数(){provent\u-bust++}
setInterval(函数(){
如果(阻止值>0){
预防胸围-=2
//204头响应阻止重定向
window.top.location='/204响应'
}
}, 1)
我遇到的问题与这里描述的完全一样:编辑:您使用这种方法制作framebust有什么原因吗?普遍接受的方法是比较
self===top
,我非常怀疑这会破坏任何锚定标签:
if (self !== top) {
// this script is running in an iframe
} else {
// this script is not running in an iframe
}
这很可能会影响IE():
- 单击引用其他文档的定位点
- 调用anchor.click方法
onbeforeuload
事件在不干扰锚定标记单击的情况下继续,必须从中返回undefined
window.onbeforeunload = function() {
prevent_bust++;
return undefined;
};
为了澄清这一点,
onbeforeunload
希望处理程序返回一个字符串,然后将该字符串放入确认框。如果您返回未定义
,它将绕过此选项,继续执行卸载
事件。目前禁用帧分解的最佳方法是,但正如您在测试中所发现的那样这种方法有一些缺点 但是,204代码禁用所有浏览器导航(所有链接、后退、前进等)。
然而,有些浏览器, 重新安装了后退和前进按钮,但仍然没有链接导航,因此将其应用于代码可能不是最好的主意,您是否尝试过将“/204响应”添加到
Iframes源(src属性) 框架破坏是一种跨原点嵌入的问题。。。但就像我说的,沙箱规则只在一定程度上有效 所以试试沙盒属性,让我们知道它是如何工作的
(显然,这种类型的事情是针对每种情况的,但这是一种很好的通用方法。)FF和Chrome中也出现了这种情况,
return undefined
似乎无法解决它。该脚本似乎阻止任何链接工作,而不仅仅是iframe中的重定向。其目的是防止框架破坏。。。如何使用self===top
来防止iframe崩溃?