因此,在我的网站上,我在iframe中加载了一个网页,并且有些网站使用框架破坏代码来突破iframe并将顶部窗口重定向到他们的网页。我想使用onbeforeunload事件来确定网页被重定向到的位置。是否有一个功能可以有效地让我event.get_redirect_location
或其他某些行?
答案 0 :(得分:0)
许多研究使我得出结论,如果window.location
是从iframe设置的,那么JavaScript无法检查“下一个位置”将会是什么并比较这两个域。
这是我所知道的阻止iframe突破网站的唯一方法。首先,您将onbeforeunload
功能设置为正常,并警告用户他/她将离开您的网站。然后 - 这是关键部分 - 您将代码添加到内部链接以防止更改页面触发onbeforeunload事件。这意味着onbeforeunload
事件将如果用户离开域:
(function(){
window.onbeforeunload = function()
{
if( !/\bnagged=true\b/.test( document.cookie ) )
{
document.cookie = "nagged=true";
location.assign('http://www.mysite.com');
return "You are being redirected off our site!";
}
}
var lnk;
for(var i in document.links)
{
if( (lnk = document.links[i] ).href.indexOf( document.domain ) > -1 )
{
lnk.onclick = function()
{
window.onbeforeunload = null;
}
}
}
})();