2010-08-19 135 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。