這個問題非常值得總結。我正在嘗試做類似於Gmail的操作,如果您在文本字段中輸入內容,網站會提示您確認是否要離開該頁面。如何檢查iframe中的文本框是否爲空?
但是,如果問題中的文本字段在iframe中怎麼辦?很明顯,我可以分配iframe一個id,但是有沒有任何javascript命令或者可以檢查iframe中的字段是否爲空的東西?這甚至有可能嗎?
編輯:嵌入iframe的iframe源和頁來自同一個域。
這個問題非常值得總結。我正在嘗試做類似於Gmail的操作,如果您在文本字段中輸入內容,網站會提示您確認是否要離開該頁面。如何檢查iframe中的文本框是否爲空?
但是,如果問題中的文本字段在iframe中怎麼辦?很明顯,我可以分配iframe一個id,但是有沒有任何javascript命令或者可以檢查iframe中的字段是否爲空的東西?這甚至有可能嗎?
編輯:嵌入iframe的iframe源和頁來自同一個域。
var value = document.getElementById('iframeID').contentDocument
.getElementById('theTextBoxId').value;
是的,這是可能的,你只需要獲得訪問文檔與contentDocument
。
從DOM iframe元素中,腳本可以通過contentWindow屬性訪問包含的HTML頁面的窗口對象。 contentDocument屬性引用iframe中的文檔元素(這相當於contentWindow.document),但IE8之前的Internet Explorer版本不支持。
嘗試訪問框架內容的腳本受到同源策略的約束,如果從其他域加載,則無法訪問其他窗口對象中的大多數屬性。
只需設置onbeforeunload
,你會彷彿iframe'd頁面是頂級頁面。如果嘗試在父框架或子框架中離開,它將被確認中斷。
使用jQuery你可以訪問iframe中的內容:
$("#iFrame").contents().find("#text")
請評論,如果頁面和iframe在同一域中或不是。附註:不需要在問題中籤名... –
我的簽名不好。是的,iframe和頁面位於同一個域中。 – Charles