2012-02-21 3 views
2

Этот скрипт запускается каждые 2 секунды и определяет, изменился ли URL-адрес iframe. Но я не могу заставить его работать. Я хочу предупредить, изменился ли URL-адрес iframe. Например, если кто-то нажимает на ссылку и переходит на другую страницу в 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

ответ

4

Если вы предпочитаете использовать JQuery ниже следующий синтаксис, вместо того, чтобы использовать половину Jquery и стандартный JavaScript.

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

Хотя я не уверен, что функция onload работает в Сарафи. Он поддерживается Firfox, IE и Chrome.

EDIT:

расширенный пример

<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

+1

Создайте bool var при первом наборе нагрузки false, если loadCheck false, а затем установите значение true и оберните ваше предупреждение, если оно загружено CheckCheck. Или, если у вас есть URL-адрес по умолчанию, тогда проверьте, установлен ли URL-адрес по умолчанию, и ничего не делайте. – Nickz

+0

Спасибо. Кроме того, возможно ли сделать событие, когда iframe загружается (а не при загрузке)? – user198989

Смежные вопросы