背景:我已經編寫了一個bookmarklet(JavaScript),它將iframe添加到您正在查看的當前頁面。此iframe的src屬性指向我的應用程序的表單。addEventListener監聽iframe的內容
問題:我想利用addEventListener來檢測表單是否已經提交。但是,我似乎無法訪問iframe中的元素。
例如:
document.getElementById(remote_form_id).addEventListener("submit",afterSubmit,true)
因爲的getElementById調用返回null不起作用。
我目前的解決辦法是對iframe中添加事件偵聽器監聽「負載」的操作,然後調用一箇中介的作用,即UPS抗衡,因爲我知道的iframe多少次是之前加載我需要調用afterSubmit()。
document.getElementById(marklet_iframe_id).addEventListener("load",listenForSubmit,true)
function listenForSubmit(){
if (count==1){afterSubmit();}
count++;
}
基本上,我正在尋找一個最佳實踐,因爲這是一個廢話的方法。
這是一個有趣的方法。然而,我寧願有一點變通辦法,適應IE .. – anxiety 2010-11-15 00:39:25
@anxiety:其實,進一步閱讀,似乎IE 8+(不是IE 7或以下)支持postMessage(只在iframe之間,而不是自包含的窗口之間,但該部分不應該是你的問題)。 – PleaseStand 2010-11-18 04:00:55