从 iFrame 中获取元素

2022-08-30 00:05:40

如何从内部获得 ?<div><iframe>


答案 1
var iframe = document.getElementById('iframeId');
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;

你可以更简单地写:

var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

并将返回第一个有效的内部文档。

获得内部文档后,您可以像访问当前页面上的任何元素一样访问其内部文件。(...等)innerDoc.getElementById

重要:确保 iframe 位于同一域中,否则您将无法访问其内部。这将是跨站点脚本。


答案 2

不要忘记在加载后访问 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>