内联脚本呈现为文本内容

3

我有一些DOM对象,它们以HTML字符串的形式给出,并通过jQuery方法replaceWith()通过AJAX插入到HTML页面中。HTML字符串包括一个<div>元素和一个内联的<script>,它可以在其中工作。下面是jQuery命令:

$('#foo').replaceWith('<div>Some Content</div><script>someJavaScriptFunction();</script>');

执行完这个AJAX后,<div>元素被正确地渲染出来,并且<script>中的脚本也能正常工作,但除此之外,内联<script>的内容会原封不动地呈现在页面上。为什么会这样?我该如何避免这种情况?当我在Chrome开发者工具中查看相应部分时,内联脚本只出现一次(这也是我的意图)。

1
你可以尝试将 '</script>' 改为 '</scr'+'ipt>' 吗? - Spokey
1个回答

3

您需要转义关闭script标签的/斜杠。

演示链接

$('#foo').replaceWith('<div>Some Content</div><script>someJavaScriptFunction()<\/script>');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接