我有一個網頁,其中有一個iframe中的textarea。我需要使用JavaScript從它的子頁面讀取這個textarea的值。在JavaScript中訪問iframe元素
目前通過在JavaScript中使用window.parent.getelementbyID().value
,我能夠獲取父頁面中除iframe中的textarea之外的所有控件的值。
任何人都可以請給我任何指針來解決這個問題?
我有一個網頁,其中有一個iframe中的textarea。我需要使用JavaScript從它的子頁面讀取這個textarea的值。在JavaScript中訪問iframe元素
目前通過在JavaScript中使用window.parent.getelementbyID().value
,我能夠獲取父頁面中除iframe中的textarea之外的所有控件的值。
任何人都可以請給我任何指針來解決這個問題?
如果您的iframe與您的父頁面在同一個域中,則可以使用document.frames
集合訪問元素。
// replace myIFrame with your iFrame id
// replace myIFrameElemId with your iFrame's element id
// you can work on document.frames['myIFrame'].document like you are working on
// normal document object in JS
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
如果您的iframe不在同一個域中,出於安全原因,瀏覽器應阻止此類訪問。
非常感謝您的建議。 但問題是,我的父頁中的幀ID和幀名稱在運行時發生變化,因此我們不能使用幀ID /幀名作爲參考。 拉耶爾有沒有其他方式? –
貝絲父母的子網頁在同一個域中。 –
如果你的網站上有一個iframe,你可以嘗試使用'document,frames [0] .document'。如果還有更多,則需要將索引更改爲其他值。 – RaYell
您應該window
訪問幀,而不是document
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
這個答案不適合我... –
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
工作不適合我,但我發現了另一個解決方案。使用:
window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')
我在Firefox和Chrome上檢查過它。
即使網頁都處於脫機狀態,我仍然遇到安全錯誤。 – TheBrenny
此代碼爲我工作:
window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId');
確保您的iframe 已經加載。舊的,但沒有jQuery的可靠的方式:
<iframe src="samedomain.com/page.htm" id="iframe" onload="access()"></iframe>
<script>
function access() {
var iframe = document.getElementById("iframe");
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
console.log(innerDoc.body);
}
</script>
任何人都可以幫我請邏輯? –
可能的重複[如何使用Javascript訪問iFrame元素?](http://stackoverflow.com/questions/1452871/how-can-i-access-iframe-elements-with-javascript) – Mark
使用'window.frames ['myIFrame']。contentDocument.getElementById('myIFrameElemId')'適用於現代瀏覽器(例如Firefox 35) - 並注意同源策略 – caw