2010-08-19 106 views
1

当iframe加载第二次时(用户单击iframe中的某个链接),我需要触发一个函数。当iframe页面发生变化时,我可以将窗口位置设置为iframe src。jQuery设置iFrame onLoad属性

我认为最好的是在第一次加载后在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

“onload”应该小写。 – 2010-08-19 01:40:48

+0

您试图让用户通过iframe在其他某个网页上点击,然后在某个时间点,无论他们在哪个地方将其重定向到常规窗口中的同一个网址? – 2010-08-19 05:11:04

+0

@Andy Atkinson是的,这正是我想要做的。我注意到iframe的src永远不会改变。 我只是在我想在常规窗口中打开的特定链接上使用target =“_ top”属性来解决问题。我想我可以以某种方式将事件绑定到iframe DOM,但“_top”更容易。 – Keyo 2010-08-19 05:35:32

回答

2
$("#fancybox-iframe").load(function(){ 
      window.location = $('#fancybox-iframe').attr('src'); 
}); 

这将允许您在iframe加载不同页面时重定向父窗口。

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的链接,您将需要捕获点击事件与JavaScript的父DOM。