iframe onpagechange事件?

时间:2012-12-17 12:55:41

标签: javascript iframe hyperlink

众所周知,点击iframe中的普通链接会打开iframe中的相应网页。现在我的问题是,是否有办法对iframe所在页面上打开的新页面做出反应。 就像iframe.onpagechange事件一样,只要iframe中的页面发生变化,就会触发该事件。点击链接时。

有这样的事件吗?如果没有,你对可能的方法有任何建议吗?

2 个答案:

答案 0 :(得分:1)

在这种情况下,不可能,并非所有浏览器都可靠。

在更现代的浏览器中,它们允许您在iframe标记本身上使用“onload”事件,并且每次iframe重新加载时都会触发 - 即单击链接时。但是,旧浏览器不支持此功能,并且有很多网站可以打破框架。如果站点突破您的帧,则不会触发任何加载事件。除此之外,因为您正在处理控制/域之外的iframe,这是您可以做的所有事情 - 告诉框架已经加载 - 其他所有内容都将被阻止访问。

<iframe onload="iframeLoaded()" src="..." />

或者更好的方法是:

<iframe id="frame" src="..." />

<script>
  window.onload = function(){
    document.getElementById('frame').addEventListener('load', iframeLoaded);
  }
</script>

答案 1 :(得分:0)

正如我在comment中所说,给html目标属性一个机会。在javascripts open函数的上下文中使用它。

iframe:HTML

<a href="http://yckart.com">Link</a>

iframe:JS

$('a').on('click', function() {
    var target = this.href;
    window.open(target, "_parent");
    return false;
});

页面:HTML

<iframe src="http://fiddle.jshell.net/CGuHR/13/show"></iframe>

<强> Fiddle