我有一个网页,其中有一个iframe中一个文本。 我需要阅读使用JavaScript从其子页面此textarea的价值。
目前使用window.parent.getelementbyID().value
在JavaScript中,我能够在父页面获取所有控件的值以外的iframe中textarea的。
任何人都可以给我任何指针来解决这个问题?
我有一个网页,其中有一个iframe中一个文本。 我需要阅读使用JavaScript从其子页面此textarea的价值。
目前使用window.parent.getelementbyID().value
在JavaScript中,我能够在父页面获取所有控件的值以外的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是不是在同一个域中的浏览器应防止出于安全原因,这样的访问。
你应该访问来自框架window
,而不是document
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
window.frames['myIFrame'].document.getElementById('myIFrameElemId')
工作不适合我,但我发现了另一个解决方案。 使用:
window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')
我检查了它在Firefox和Chrome。
此代码为我工作:
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>
两种方法
window.frames['myIFrame'].contentDocument.getElementById('myIFrameElemId')
要么
window.frames['myIFrame'].contentWindow.document.getElementById('myIFrameElemId')