我不知道该怎么解释,我只是告诉你,我想做

我有一个JavaScript函数,可向div添加新内容

function stopUpload(success) {
  document.getElementById("load-content").innerHTML = success + document.getElementById("load-content").innerHTML;
}


但是,成功中包含JavaScript函数:

success = '
        //more html
        <script type=\"text/javascript\">
            $(\"body\").share({
                onClickId: \"share-default-29\",
                owner: \"brfieger\",
                description: \"asdasdasdasd\",
                image: \"\",
                pid: \"29\",
                type: \"status\"
            });
        </script>
        //more html
    ';


我收到一个错误,因为它正在识别

</script>


并终止脚本

Uncaught SyntaxError: Unexpected token ILLEGAL


如果很重要,我会像这样调用stopUpload:

<script type="text/javascript">
    window.top.window.stopUpload('//success content above');
</script>


我不知道如何解决此问题,我假设脚本被封装在字符串中,并且在被评估之前不会被识别,但是它是

另外,为了提高可读性,我添加了新行。在代码中,所有新行都转换为\ n

最佳答案

如果使用'</script>',则脚本将终止。然后,您可以使用'</scr'+'ipt>'

Demo



注意:上面的代码避免了错误,但是不执行脚本。

如果要执行它,则应使用DOM方法:

var s = document.createElement('script');
s.text = "alert('a')";
document.body.appendChild(s);


Demo

09-15 19:13