2013-02-19 36 views
0

我想啓動我的iframe加載函數,問題是有些是動態生成的,哪個不會觸發.load()事件,我試過了:動態生成的iframe不響應.load()

$('.upload-target').on('load',uploadDone) 

function uploadDone(){ 
    alert('ewfweewf'); 
} 

但沒有運氣..我怎麼能觸發一個動態生成的iframe的加載功能?

+0

首先,你需要使用的正確語法代表團。上。然而,我並不完全確定加載事件是否在所有瀏覽器中傳播(這會使你正在嘗試做的事情幾乎不可能完成,而不需要完全不同的路線) – 2013-02-19 22:05:23

+0

他如何使用'.on ()'。一個直接來自jQuery自己的文檔的例子:function notify(){alert(「clicked」); }(「button」)。on(「click」,notify);' – idrumgood 2013-02-19 22:06:50

+0

@idrumgood是的,但該語法不會將事件委託給動態元素。他錯過了委託目標和上下文。 – 2013-02-19 22:07:37

回答

0

正如你可以在這個小提琴看到,http://jsfiddle.net/Uj3bH/ Load事件不傳播,因此,你將無法使用事件委託綁定到iframe的load事件。相反,在創建動態iframe時綁定事件。

$(iframehtmlstring).appendTo("body").on("load",function(){ 
    console.log("worky") 
}); 
0

試試這個:

$('.upload-target').load(function(){ 
    alert('ewfweewf'); 
}); 
0

我會說,因爲相同來源政策 攻擊者可能濫用加載時間來獲得額外信息的負載不傳播。例如如果登錄加載時間可能需要更長的時間

如果沒有..好,然後我發現一個安全問題;)