我正在尝试创建一个输入,有人可以在文本区域中编写javascript。在他们单击一个按钮后,我加载他们在文本区域中编写的脚本并将其插入到将保存的html div中(基本上将此和其他html元素保存为自定义创建的页面)
但是,当我使用jquery将javascript插入div时,它只运行脚本,但不插入内容。有没有办法让代码运行并复制到html中,这样我可以保存写的内容?
编辑:这是一个例子:
HTML:
JS :( Jquery) $( '#myDiv')的html( 'window.alert( “测试”)');
弹出警报窗口,$('#myDiv')。html()=“”,div仍为空。
我正在寻找一种将脚本文本插入div的方法,然后运行它而不会丢失HTML中的脚本。
答案 0 :(得分:0)
如果你转义所有的html(包括脚本标签),它将不会运行javascript。如果您确实要渲染在textarea中输入的所有其他html,则只能转义脚本标记。所以html变成了这样的东西:
<p>Just a paragraph</p>
<script%gt;
alert('this js does not run');
</script%gt;
<b>This is really bold</b>
答案 1 :(得分:0)
将javascript插入div标签时,您需要转义字符。这是显示可以执行转义的函数的链接,Convert special characters to HTML in Javascript,查看具有 HtmlEncode 功能的第二个回复。