动态放置在 iframe 中的脚本不会执行

Script dynamically placed inside an iframe doesn't execute

本文关键字:脚本 执行 iframe 动态      更新时间:2023-09-26

>上下文

我在页面上有一个 iframe,我在其中动态插入一个脚本,以便脚本将被沙盒化并且无法影响外页。我希望脚本执行,但它没有。这是为什么呢?

法典

var iframe = document.getElementsById('/* ... */').contentWindow.document;
var script = '<script>document.write("foo");</script>';
iframe.body.innerHTML = script;

当我这样做时,当我检查 DOM 时,我可以看到脚本元素被正确插入到 iframe 的主体中。但脚本永远不会执行。如果我打开开发工具并转到"控制台"选项卡并切换到 iframe 的上下文并键入document.write('foo');我会看到foo显示在 iframe 中。但是,为什么插入脚本后不执行呢?

尝试这样的事情(如果使用jQuery)...

$('#iframe_').contents().find('body').append("My Js Code");