JS document.write() 将 scritps 写入 iframe 的头部



有人可以解释一下document.write到iframe是如何工作的吗?我有以下代码:

<html>
<body>
    <iframe id="iframe"></iframe>
<script>
    var code = '<scr' + 'ipt>console.log(window.frameElement.contentWindow.document.getElementById("test") );</scr' + 'ipt><div id="test"></div>';
    document.getElementById('iframe').contentWindow.document.open();
    document.getElementById('iframe').contentWindow.document.write(code);
    document.getElementById('iframe').contentWindow.document.close();
</script>
</body>

不知道如何,但标签被写入 iframe 的头部标签,并写入正文。如何从脚本内部获取div 元素传递到 iframe 中。我的示例不起作用,它返回 null。

不幸的是,在现实生活中我不知道 iframe 的 id,我只知道div 的 id。

看我的小提琴:https://jsfiddle.net/85bk3cr6/1/

如果 iframe 与父页面域位于同一域中,则可以访问该 iframe。如果两者在同一个域中,您可以简单地访问 iframe 文档并对其使用写入功能。

网页代码:

<html>
<body>
    <iframe id="iframe"></iframe>
</body>
</html>

Js 代码:

document.getElementById("iframe").contentWindow.document.write('x3Cscript type="text/javascript" src="foo.js">x3C/script>')

最新更新