带有“<script>”字符串的内联javascript错误地关闭脚本标记</script>

时间:2012-09-08 14:18:45

标签: javascript html string

我正在推出一个大型JS程序,其中包含一行代码,如:

doc.write("<script>var app = \"" + _2d() + "\";</script>");

不幸的是,浏览器(chrome)认为字符串中的脚本是结束脚本标记,并且实际上将其后的所有内容都视为HTML文本。

如何包含这样的字符串并将其转义,以免混淆浏览器HTML解析?

2 个答案:

答案 0 :(得分:22)

如果要将<\/script>放在JS中的字符串中,则应始终使用</script>,因为</script>标记了标记的结尾,无论它出现在何处。

答案 1 :(得分:3)

我通过拆分像this SO question推荐的脚本标记来解决它:

doc.write("<scr"+"ipt>var app = \"" + _2d() + "\";</scr"+"ipt>");