如何在 javascript 中的 iframe 中创建和执行代码
How to create and execute code in a iframe in javascript
我正在做一个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 ,但由于标签本身从页面诞生的那一刻起就存在在那里,因此您应该通过这种方式轻松避免您试图避免的所有混乱。
相关文章:
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- Javascript:对回调创建的对象执行方法
- indexedDB创建数据库并添加内容执行失败'交易'在'IDBDatabase'
- 为什么用构造函数创建对象会执行对象's方法
- AngularJS-由$scope创建的作用域何时执行$new()已删除.垃圾收集器或Angular负责处理它吗
- 如何创建一个在JavaScript中执行与键盘输入相同事件的按钮
- 如何创建javascript执行器,使元素在selenium webdriver中可见
- 为什么创建后立即执行的样式指定没有设置动画
- 创建一个不执行任何操作的 JavaScript 对象
- Javascript - 在创建时对数组元素执行操作
- 为什么通过 DOMParser 创建的脚本元素不执行
- 为什么addEventListener只执行我的函数,而不为其创建鼠标悬停/鼠标打开事件
- 在猫鼬中创建承诺时,不会调用执行器
- asp.net mvc 服务器是否可以查看在父级执行提交时动态创建的控件
- chrome.tabs.on创建并执行Chrome扩展程序的脚本不起作用
- 有没有办法显示/使用用户输入来执行各种功能,例如创建表
- 从执行jscript列表按钮创建多个相关对象
- FSO.创建文本文件 - 停止而不执行任何操作
- 为什么此处未创建执行上下文