在JavaScript中访问iframe元素在JavaScript中访问iframe元素(Acces

2019-05-04 09:12发布

我有一个网页,其中有一个iframe中一个文本。 我需要阅读使用JavaScript从其子页面此textarea的价值。

目前使用window.parent.getelementbyID().value在JavaScript中,我能够在父页面获取所有控件的值以外的iframe中textarea的。

任何人都可以给我任何指针来解决这个问题?

Answer 1:

如果你的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是不是在同一个域中的浏览器应防止出于安全原因,这样的访问。



Answer 2:

你应该访问来自框架window ,而不是document

window.frames['myIFrame'].document.getElementById('myIFrameElemId')


Answer 3:

window.frames['myIFrame'].document.getElementById('myIFrameElemId')

工作不适合我,但我发现了另一个解决方案。 使用:

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')

我检查了它在Firefox和Chrome。



Answer 4:

此代码为我工作:

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId');


Answer 5:

确保您的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>


Answer 6:

两种方法

window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')

要么

window.frames['myIFrame'].contentWindow.document.getElementById('myIFrameElemId')


文章来源: Access iframe elements in JavaScript