Javascript jQuery设置iFrame onLoad属性
我需要在iframe再次加载时触发一个函数(用户单击iframe中的某个链接)。当iframe页面更改时,我可以将窗口位置设置为iframe src 我认为最好的方法是在第一次加载之后在iframe元素上设置onLoad属性。我想我需要实时事件来告诉iframe是何时创建的,因为它是动态的 这就是我的想法:Javascript jQuery设置iFrame onLoad属性,javascript,jquery,Javascript,Jquery,我需要在iframe再次加载时触发一个函数(用户单击iframe中的某个链接)。当iframe页面更改时,我可以将窗口位置设置为iframe src 我认为最好的方法是在第一次加载之后在iframe元素上设置onLoad属性。我想我需要实时事件来告诉iframe是何时创建的,因为它是动态的 这就是我的想法: $(document).ready(function() { $('#tenant_login').fancybox({type:'iframe'}); $('#tenant
$(document).ready(function() {
$('#tenant_login').fancybox({type:'iframe'});
$('#tenant_login').click(function() {
$('#fancybox-frame').attr('onload', function() {
window.location = $('#fancybox-iframe').attr('src');
});
});
});
如果重要的话,iframe不是跨域的
$("#fancybox-iframe").load(function(){
window.location = $('#fancybox-iframe').attr('src');
});
这将允许您在iframe加载其他页面时重定向父窗口。如果您可以控制iframe内容,就像我在超链接上设置的
target=“\u top”
属性,则浏览器将在浏览器窗口而不是iframe中打开链接
主要文件:
<html>
<body>
<h1>The Main Page</h1>
<iframe src="myIframe.html" />
</body>
<html>
<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>
主页
Iframe文件:
<html>
<body>
<h1>The Main Page</h1>
<iframe src="myIframe.html" />
</body>
<html>
<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>
IFRAME
如果无法将
target=“\u top”
放在iframe DOM的链接上,则需要使用父DOM中的javascript捕获单击事件。“onload”应为小写。您试图让用户通过iframe在其他网页上单击,然后在某个点,无论他们在哪里,将它们重定向到常规窗口中的同一URL?@Andy Atkinson是的,这正是我想要做的。我注意到iframe的src从未改变。我只是在我想在常规窗口中打开的特定链接上使用了target=“\u top”属性,它解决了问题。我想我可以以某种方式将事件绑定到iframes DOM,但是“_top”更容易。嘿,Keyo,你能解释一下你是如何解决问题的并将你的答案标记为已接受的吗?这是吸引了大量的流量和谷歌相当高的iframe onload相关问题-这将是很好的看到解决方案!我补充了一个答案。我认为Stefan的回答可能对解决我最初提出的问题更有用。