1
因此,在我的網站上,我在iframe中加載了一個網頁,並且一些網站有框架破壞代碼以突破iframe並將頂部窗口重定向到其頁面。我想使用onbeforeunload事件來確定網頁被重定向到的位置。有沒有一種功能可以有效地讓我做event.get_redirect_location
或者其他什麼?檢測窗口正在卸載的位置
因此,在我的網站上,我在iframe中加載了一個網頁,並且一些網站有框架破壞代碼以突破iframe並將頂部窗口重定向到其頁面。我想使用onbeforeunload事件來確定網頁被重定向到的位置。有沒有一種功能可以有效地讓我做event.get_redirect_location
或者其他什麼?檢測窗口正在卸載的位置
大量的研究讓我得出這樣的結論:如果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;
}
}
}
})();