我正在开发一个小编辑器来向网站添加小部件(HTML,CSS和Javascript)。
除了我有问题要检索javascript代码。实际上,它执行得很好,但从DOM中消失了。有些东西让我感到惊讶!
我在这里简化了我的问题: HTML代码:
<textarea id="code">
<script type="text/javascript">alert("code");</script>
</textarea>
<div id="target"></div>
Javascript代码:
$("#target").html($("#code").val());
alert($("#target").html());
尝试一下:http://jsfiddle.net/8uhB8/3/
此示例插入javascript代码(一个简单的javascript警报)并尝试检索它。
你有什么想法吗?
谢谢!
答案 0 :(得分:2)
$("#target").html($("#code").html());
alert($("#target").html());
由于您使用的是HTML字符,因此在这种情况下需要使用.html()
。
答案 1 :(得分:2)
这就是.html()
的工作方式。它为.innerHTML
分配HTML的所有结构部分。但是分配innerHTML
不会执行脚本。因此,jQuery将所有脚本从HTML中提取出来,并将它们放在<script>
节点中以执行它们。此节点只是临时的,并在.html()
完成时删除。但脚本仍在执行。