0

可能重复:
jQuery:无法附加 <script> 元素

我正在尝试通过执行以下操作用 javascript 替换 div:

$("#frame").replaceWith("<script language='JavaScript' type='text/javascript'>AC_VHost_Embed(2672266,206,206,'',1,1, 2279587, 0,1,0,'912832a3e8b02d79380c8352f2d497f6',9);</script>") ;

但在控制台中,错误显示 Unexpected token: ILLEGAL

任何想法?

4

2 回答 2

2

我猜这是内联的 JavaScript,在这种情况下,您需要分解结束</script>标记。我还使它更具可读性:

$("#frame").replaceWith(
    "<script language='JavaScript' type='text/javascript'>"
    + "AC_VHost_Embed(2672266,206,206,'',1,1, 2279587, "
    + "0,1,0,'912832a3e8b02d79380c8352f2d497f6',9);"
    + "<" + "/script>"
);

这样做的原因是浏览器不会认为您</script>的字符串内部是脚本块的结尾。例子:

<script>
    // Doesn't work!
    alert('</script>');
</script>

您的浏览器会看到:

<script>
    // Doesn't work!
    alert('
</script>
');
</script>

换句话说,您的浏览器认为脚本在它第一次看到时就结束了</script>。您可以通过将假货</script>分解成碎片来解决此问题。

<script>
    // Works fine!
    alert('<' + '/script>');
</script>
于 2012-12-01T04:48:59.810 回答
0

在渲染后将脚本标记附加到 DOM 不会自动加载脚本。

看看这个 jQuery 函数来加载脚本:http ://api.jquery.com/jQuery.getScript/

于 2012-12-01T04:50:23.820 回答