我正试着用一个帧分解器,正如在这个问题中所讨论的:
Frame Buster Buster ... buster code needed
它能很好地阻止frame buster,不幸的是,它还可以完全停止url的任何更改,包括单击链接或在地址栏中键入新地址。
有办法解决这个问题吗?也许可以在加载帧后清除window.onbeforeunload函数?还是完全不同的方法?
最佳答案
这就是我最后的结局。它只忽略页面加载后的下一个重定向。这种方法的主要缺点是,如果框架从不调用它的framebuster(例如,因为加载不正确,或者框架站点更改了它们的代码),这将停止下一次尝试的页面移动。一个可能的解决方案是在框架页面加载之后,但直接在任何脚本执行之前执行它。另一个解决方案是只捕获对框架主机的基本url的url更改。我不知道这是否可能。。。
function ignore_next_redirect() {
var redirect_timer;
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++; }
redirect_timer = setInterval(function() {
if (prevent_bust > 0) {
window.top.location = 'http://example.org/204'
window.onbeforeunload = function() {}
clearInterval(redirect_timer);
}
}, 1);
}
它仍然有问题-它似乎停止加载内容,如果它发生在页面的开头。
我知道某个地方有一个解决方案-谷歌图像似乎让它工作。将更新任何进度。。。