如何在 javascript 中的 iframe 中创建和执行代码

How to create and execute code in a iframe in javascript

本文关键字:创建 执行 代码 iframe javascript 中的      更新时间:2023-09-26

我正在做一个Web编辑器,有一个接收用户代码的文本区域和一个实时显示html的iframe。我有一个侦听keyup用户的事件,这是我用来在iframe上执行javascript的代码

var iframe = $("#iframeresults").contents()  
$("#wrapper").on("paste keyup", function(){ 
  setTimeout(function(){ 
    iframe.find("body").html(webEditor.getHtml()); 
    iframe.find("style").html(webEditor.getCss()); 
    iframe.find("script").remove() 
    var script = document.createElement("script") 
    script.text = webEditor.getJS() 
    iframe.find("head")[0].appendChild(script) 
  },800) 
}); 

这工作正常,但我必须在每次用户按下键时删除并创建脚本标签,我的问题是,有没有另一种方法可以在不接触 dom 的情况下做到这一点?

我试过这个链接

但是如果我使用 eval 并且代码包含 sintax erros,这将停止

您始终可以在 iframe 的导入页面中预先存在脚本标签(带有空的"src"属性),然后在正常插入整个节点时增加标签即可。 从技术上讲,您仍在更改 DOM ,但由于标签本身从页面诞生的那一刻起就存在在那里,因此您应该通过这种方式轻松避免您试图避免的所有混乱。