当前位置: 代码迷 >> JavaScript >> 如何检测iframe的来源何时更改?
  详细解决方案

如何检测iframe的来源何时更改?

热度:85   发布时间:2023-06-05 09:26:21.0

我想,当用户点击一个链接来检测iframe和改变的源iframe ,因为我想调整它的大小。 我也使用jQuery。 检测此问题的最佳方法是什么?

实际上我需要这样的东西(这个例子在jQuery中,它不起作用,我想象这个)

$('#iframe').live('load', function(){ alert('src is changed')});

您可能希望使用onLoad事件,如以下示例所示:

<iframe src="/test.html" onLoad="alert(this.contentWindow.location);"></iframe>

只要iframe中的位置发生更改,系统就会弹出警报。 它适用于所有现代浏览器,但可能无法在IE5和早期Opera等一些非常老的浏览器中使用。 ( )

请注意,如果iframe位于不同的域或子域中,您将无法访问contentWindow.location ,但仍会触发onLoad事件。

这不是一个完全干净的解决方案,但它可以工作:您可以创建一个定期检查iframe源是否已更改的计时器。

var prevSrc = '';
function check() {
  var curSrc = $('#iframe').attr('src');
  if (curSrc != prevSrc) {
    // source has changed; do something
    prevSrc = curSrc;
  }
}

window.setInterval(check, 1000); // 1 sec - this can be anything you want
  相关解决方案