从 iFrame 中获取元素
2022-08-30 00:05:40
如何从内部获得 ?<div>
<iframe>
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 位于同一域中,否则您将无法访问其内部。这将是跨站点脚本。
不要忘记在加载后访问 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>