JavaScript <script> 标签未在 iframe 中执行

JavaScript within <script> tags are not being executed in an iframe

我正在构建一个简单的在线 HTML IDE,学生可以在其中将 HTML 键入 codemirror 编辑器,然后在单击按钮时放置 HTML在 iframe 中呈现页面。

我的问题代码:

function runit() { 
   var prog = myCodeMirror.getValue(); 
   var mypre = document.getElementById("output");
   mypre.contentDocument.body.outerHTML = prog; 
 
}

prog 是来自编辑器的 html,mypre 是 iframe。

放置在 <body> 标签中的所有 html 都在 iframe 中正确执行。 <style> 标记内的所有 css 代码都在 iframe 中正确执行。 但是,放置在 <script> 标记中的任何 javascript 都不会在 iframe 中执行。

如何让 <script> 标签内容在 iframe 中正确执行?

这可能有帮助:

const runit = () => document.getElementById("output").srcdoc = myCodeMirror.getValue();

我们使用 属性 srcdoc 将 iframe 中的内容更改为 HTML