2011-07-15 56 views
1

因此,在我的網站上,我在iframe中加載了一個網頁,並且一些網站有框架破壞代碼以突破iframe並將頂部窗口重定向到其頁面。我想使用onbeforeunload事件來確定網頁被重定向到的位置。有沒有一種功能可以有效地讓我做event.get_redirect_location或者其他什麼?檢測窗口正在卸載的位置

回答

0

大量的研究讓我得出這樣的結論:如果window.location從iframe中設置,那麼JavaScript就無法檢查'下一個位置'將會是什麼並比較這兩個域。

這是我知道的防止iframe突破網站的唯一方法。首先,您將您的onbeforeunload函數設置爲正常行爲,並警告用戶他/她將離開您的網站。然後 - 這是關鍵部分-您將代碼添加到您的內部鏈接,以防止頁面更改觸發onb​​eforeunload事件。這意味着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; 
      } 
     } 
    } 
})();