2011-07-15 15 views
1

私のサイトでは、iframeにWebページを読み込み、iframeから抜け出し、トップウィンドウをページにリダイレクトするフレームバストコードがあります。私はonbeforeunloadイベントを使用して、Webページがリダイレクトされている場所を特定したいと考えています。効果的に私にevent.get_redirect_locationかその行に沿って何かをさせる機能はありますか?ウィンドウがアンロードされている場所を検出する

答えて

0

多くの研究によって、window.locationがiframeから設定されている場合、JavaScriptが次の場所を確認して2つのドメインを比較する方法がないという結論に至りました。

これは、iframeがサイトから壊れるのを防ぐために私が知っている唯一の方法です。まず、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; 
      } 
     } 
    } 
})(); 
これは、ユーザーが ドメインを残している場合 onbeforeunloadイベントはONLY発火することを意味します
関連する問題