众所周知,点击iframe中的普通链接会打开iframe中的相应网页。现在我的问题是,是否有办法对iframe所在页面上打开的新页面做出反应。 就像iframe.onpagechange事件一样,只要iframe中的页面发生变化,就会触发该事件。点击链接时。
有这样的事件吗?如果没有,你对可能的方法有任何建议吗?
答案 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 强>