2013-01-15 131 views
0

這個問題非常值得總結。我正在嘗試做類似於Gmail的操作,如果您在文本字段中輸入內容,網站會提示您確認是否要離開該頁面。如何檢查iframe中的文本框是否爲空?

但是,如果問題中的文本字段在iframe中怎麼辦?很明顯,我可以分配iframe一個id,但是有沒有任何javascript命令或者可以檢查iframe中的字段是否爲空的東西?這甚至有可能嗎?

編輯:嵌入iframe的iframe源和頁來自同一個域。

+0

請評論,如果頁面和iframe在同一域中或不是。附註:不需要在問題中籤名... –

+0

我的簽名不好。是的,iframe和頁面位於同一個域中。 – Charles

回答

2
var value = document.getElementById('iframeID').contentDocument 
        .getElementById('theTextBoxId').value; 

是的,這是可能的,你只需要獲得訪問文檔與contentDocument

從DOM iframe元素中,腳本可以通過contentWindow屬性訪問包含的HTML頁面的窗口對象。 contentDocument屬性引用iframe中的文檔元素(這相當於contentWindow.document),但IE8之前的Internet Explorer版本不支持。

嘗試訪問框架內容的腳本受到同源策略的約束,如果從其他域加載,則無法訪問其他窗口對象中的大多數屬性。

MDN

+0

+1。請注意,此類代碼僅適用於IFrame的頁面和內容來自同一個域時。 –

+0

@AlexeiLevenkov,謝謝,我將它添加到下一個訪問者的答案中,儘管OP寫道,對於他的具體情況他沒有這個問題。 – gdoron

+0

謝謝,這是問題的最佳答案。我認爲Kolink的提案更適合我的情況。我以前沒有想過要這樣做。 – Charles

1

只需設置onbeforeunload,你會彷彿iframe'd頁面是頂級頁面。如果嘗試在父框架或子框架中離開,它將被確認中斷。

1

使用jQuery你可以訪問iframe中的內容:

$("#iFrame").contents().find("#text")