我需要在iframe第二次加载时触发一个函数(用户点击iframe中的某个链接)。当iframe页面更改时,我可以将窗口位置设置为iframe src。
我认为最好的方法是在第一次加载后在iframe元素上设置onLoad属性。我想我需要实时事件来判断iframe何时被创建,因为它是动态的。
这就是我的想法:
$(document).ready(function() {
$('#tenant_login').fancybox({type:'iframe'});
$('#tenant_login').click(function() {
$('#fancybox-frame').attr('onload', function() {
window.location = $('#fancybox-iframe').attr('src');
});
});
});
如果重要,iframe不是跨域。
答案 0 :(得分:2)
$("#fancybox-iframe").load(function(){
window.location = $('#fancybox-iframe').attr('src');
});
这将允许您在iframe加载不同页面时重定向父窗口。
答案 1 :(得分:0)
如果您可以控制iframe内容,就像我在超链接上设置target="_top"
属性一样,浏览器会在浏览器窗口而不是iframe中打开链接。
主要文件:
<html>
<body>
<h1>The Main Page</h1>
<iframe src="myIframe.html" />
</body>
<html>
iframe文件:
<h2>The IFRAME</h2>
<a href="something.html" target="_top" >
This will open in the browser window rather than any iframe it exists in.
</a>
如果您无法将target="_top"
放在iframe DOM的链接上,则需要使用来自父DOM的javascript捕获点击事件。