什麼會改變iframe的來源?如果您有權訪問該代碼,則可以執行onload
函數中的任何操作。
如果鏈接有它的target
屬性設置爲iframe和,即源是如何變化的,那麼你可以hi-jack位置的鏈接點擊:
$('a[target="frameB"]').bind('click', function() {
//run your onload code here, it will run as the iframe is downloading the new content
});
而且,只是一個側面說明,你可以結合的事件處理程序jQuery中的load
事件是這樣的:
$('#frameB').bind('load', function() {
//run onload code here
});
UPDATE
SITE - > frameB - > frameA
$("#frameB").contents().find("#frameA").bind('load', function() {
//load code here
});
這將選擇#frameB
元件(即在當前的頂層DOM),得到它的內容,發現#frameA
元件,然後結合爲load
事件的事件處理程序。
請注意,此代碼必須在#frameB
加載了已存在於其DOM中的#frameA
元素後運行。像這樣的東西可能是一個好主意:
$('#frameB').bind('load', function() {
$(this).contents().find('#frameA').bind('load', function() {
//run load code here
});
});
UPDATE
要在#frameB
元素hi-jack位置鏈接:
$('#frameB').contents().find('a[target="frameA"]').bind('click', function() {
/*run your code here*/
});
這會找到在具有#frameB
元素的任何鏈接的target
屬性設置爲frameA
並添加一個click
事件處理程序。
而且,只有當iframe元素已加載(或至少獲得document.ready
事件)時才能使用,因此您可以選擇它的元素。
JavaScript調用將更改iframeA src(從iframeA調用)。 我只能訪問頂級網站的源代碼。站點 - > IFRAME_B - > IFRAME_A。第二個片段只有在#frameB是首頁的孩子時纔有效,不是嗎?我不能hi.jack點擊,因爲改變呼叫來自js。 (ifamreA) – Pmillan
只要它們在同一個域中(否則same-domain-policy不允許這樣做),您可以選擇'
這真的很好,謝謝你的幫助,但是當iframe加載完成時也調用加載觸發器,並且我需要加載前的時刻。 – Pmillan