我想检测用户何时点击iframe
中的链接并更改iframe
的来源,因为我想调整它的大小。我也使用jQuery。检测此问题的最佳方法是什么?
其实我需要这样的东西(这个例子是在jQuery中,它不起作用,我想到了这个)
$('#iframe').live('load', function(){ alert('src is changed')});
答案 0 :(得分:13)
您可能希望使用onLoad
事件,如以下示例所示:
<iframe src="/test.html" onLoad="alert(this.contentWindow.location);"></iframe>
只要iframe中的位置发生变化,系统就会弹出警报。它适用于所有现代浏览器,但可能无法在IE5和早期Opera等一些非常老的浏览器中使用。 (Source)
请注意,如果iframe位于其他域或子域中,您将无法访问contentWindow.location
,但onLoad
事件仍会触发。
答案 1 :(得分:3)
这不是一个完全干净的解决方案,但它可以工作:您可以创建一个定期检查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