2012-02-21 62 views
2

此腳本每2秒運行一次並檢測iframe的url是否更改。但我無法讓它工作。我想提醒iframe的url是否被更改。例如,如果有人點擊鏈接並轉到iframed內容的另一個頁面。iframe url更改時的警報

var prevSrc = "http://www.bodrumlife.com"; 
function check() { 
var curSrc = $('#iframe').attr('src'); 
    if (curSrc != prevSrc) { 
    alert("hobaa"); 
    prevSrc = curSrc; 
    } 
} 

window.setInterval(check, 2000); // 2 seconds 


<iframe id="iframe" name="iframe" src="http://www.bodrumlife.com"></iframe> 
+4

http://stackoverflow.com/questions/2429045/iframe-src-change-event-detection – xandercoded 2012-02-21 04:58:55

回答

4

如果你喜歡在下面使用JQuery是下面的語法,而不是使用半-jquery和標準的javascript。

$(function(){ 
    $('#iframeId').load(function() { 
     alert("the iframe has changed."); 
    }); 
}); 

雖然我不確定onload函數是否在Sarafi中有效。它由Firfox,IE和Chrome支持。

編輯:

擴展的例子

<script type="text/javascript"> 
     $(function() { 
      var intialFrameSrc = "http://www.twiij.com"; 
      $("#iframeContentPanel").load(function() { 
       if (intialFrameSrc != $("#iframeContentPanel").attr('src')) { 
        alert("the iframe has changed."); 
       } 
      }); 

      $("#btnChangeUrl").click(function() { 
       $("#iframeContentPanel").attr("src", "http://m.smh.com.au/"); 
      }); 
     }); 

    </script> 
     <iframe id="iframeContentPanel" name="iframeContentPanel" src="http://www.twiij.com" width="500" frameborder="0" height="500" scrolling="no"></iframe> 
<input type="button" id="btnChangeUrl" value="Change Url"/> 
+1

謝謝,它的工作原理。但是,當iframe的第一個負載也會觸發。如何防止它在第一次加載時發射? – user198989 2012-02-21 05:31:38

+1

如果loadedCheck爲false,則在第一次加載時創建一個布爾變量false,然後將其設置爲true,然後將其設置爲true,並在您加載後檢測警報。或者如果你有默認的URL,那麼檢查url是否是默認的,然後什麼也不做。 – Nickz 2012-02-21 05:39:00

+0

謝謝。另外,是否有可能在iframe加載時發生事件(不是加載時)? – user198989 2012-02-22 15:23:57