2009-07-19 43 views
2

我试图使用框架克星克星,因为在这个问题讨论: Frame Buster Buster ... buster code needed框架克星克星

它在停止框架克星的伟大工程,不幸的是它也停止URL中的任何改变的全部 - 包括点击链接或在地址栏中输入新地址。

有没有办法解决这个问题?也许在加载框架后清除window.onbeforeunload函数?或者一个完全不同的方法?

+4

这听起来像邪恶的编码! – 2009-07-19 02:35:36

回答

3

这就是我最终的目标。它只会在页面加载后忽略下一个重定向。这种方法的主要缺点是,如果框架从不调用其框架(例如,因为它没有正确加载,或者框架站点改变了它们的代码),这将停止下一次尝试的页面移动。一个可能的解决方案是在页面加载之后执行它,但是直接在任何脚本执行之前执行它。另一种解决方案是只捕获对框架主机的基本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); 
} 

它仍然有问题 - 它似乎停止加载内容,如果它发生在页面的开始。

我知道一个解决方案就在那里 - 谷歌图像似乎有它的工作。将更新任何进度...