2

我正在开发一个小编辑器来向站点添加小部件(HTML、CSS 和 Javascript)。

  • 用户在字段中键入小部件代码。
  • 验证时,小部件的代码被添加到页面中。
  • 用户可以编辑代码(从 DOM 中检索)。

除了我在检索 javascript 代码时遇到问题。实际上,它执行得很好,但从 DOM 中消失了。有什么东西让我无法理解!

我在这里简化了我的问题: HTML 代码:

<textarea id="code">
    &lt;script type=&quot;text/javascript&quot;&gt;alert(&quot;code&quot;);&lt;/script&gt;
</textarea>
<div id="target"></div>

Javascript代码:

$("#target").html($("#code").val());
alert($("#target").html());

试试看:http: //jsfiddle.net/8uhB8/3/

此示例插入 javascript 代码(一个简单的 javascript 警报)并尝试检索它。

你有什么主意吗?

谢谢!

4

2 回答 2

2
$("#target").html($("#code").html());
alert($("#target").html());

小提琴。

.html()因为您使用的是在这种情况下需要使用的 HTML 字符。

于 2013-05-12T10:07:42.300 回答
2

就是这样.html()工作的。它分配.innerHTML了 HTML 的所有结构部分。但是分配innerHTML不会执行脚本。因此 jQuery 将所有脚本从 HTML 中提取出来,并将它们放在一个<script>节点中以执行它们。此节点只是临时的,并在.html()完成时被删除。但是脚本仍然被执行。

于 2013-05-12T10:14:43.867 回答