内联javascript与"<脚本>"字符串错误地关闭了脚本标记

Inline javascript with "<script>" string closes script tag by mistake

本文关键字:脚本 quot gt javascript lt 内联 字符串 错误      更新时间:2023-09-26

我正在内联一个大型JS程序,其中包括一行代码,如:

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

不幸的是,浏览器(chrome)认为字符串中的脚本是结束脚本标记,实际上会像它的HTML文本一样接受之后的所有内容。

如何包含这样一个字符串并对其进行转义,这样它就不会混淆浏览器的HTML解析?

如果要将</script>放在JS中的字符串中,则应始终使用<'/script>,因为无论标记出现在哪里,</script>都会标记标记的结束。

我通过拆分脚本标签解决了这个问题,SO问题建议:

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