Possible Duplicate:
jQuery: Can’t append <script> element




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

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


但是在控制台中,错误显示意外令牌:ILLEGAL

任何的想法?

最佳答案

我猜这是内联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>

关于javascript - 替换为javascript ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13656429/

10-12 00:46
查看更多