jQuery设置了iFrame onLoad属性

时间:2010-08-19 01:37:32

标签: javascript jquery

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

2 个答案:

答案 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捕获点击事件。

相关问题