【问题标题】:Inline javascript with "<script>" string closes script tag by mistake带有“<script>”字符串的内联 javascript 错误地关闭了脚本标记
【发布时间】:2012-09-02 03:06:56
【问题描述】:

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

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

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

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

【问题讨论】:

标签: javascript html string


【解决方案1】:

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

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

【讨论】:

  • 不要那样做。与 Kolink 的解决方案相比,它的效率略低且明显丑陋。 (而且绝对不需要分解开始标签)
【解决方案2】:

如果您想在 JS 中将&lt;/script&gt; 放入字符串中,则应始终使用&lt;\/script&gt;,因为&lt;/script&gt; 标记了标签的结尾,无论它出现在哪里。

【讨论】:

  • 这个!简单而优雅的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多