Javascript jQuery设置iFrame onLoad属性

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

我需要在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不是跨域的

$("#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的回答可能对解决我最初提出的问题更有用。