【问题标题】:Why does this line of Google closure look like it looks?为什么这行 Google 闭包看起来像它的样子?
【发布时间】:2012-01-17 20:09:51
【问题描述】:

为什么这个 javascript 行看起来像这样?我的意思是,为什么在结尾处有一个额外的 +?

'<script type="text/javascript" src="' + src + '"></' + 'script>'

来源:http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/base.js#511

【问题讨论】:

    标签: javascript google-closure google-closure-library


    【解决方案1】:

    因为如果"&lt;/script&gt;"&lt;script&gt; 标记内,浏览器会认为您已关闭脚本标记。在 &lt;script&gt; 标签内的字符串中包含文本 &lt;/script&gt; 是一种非常常见的方式。

    【讨论】:

    • 为什么 '' 不起作用?
    • 请注意,如果您将脚本作为外部文件加载,这个小技巧根本没有任何好处。所以这是“以防万一”......
    • @Terry:因为HTML解析器需要找到&lt;script&gt;...&lt;/script&gt;的内容。只有在这之后,才会将内容传递给 JS 引擎进行进一步处理。 HTML 解析器不知道 JavaScript 语法,因此它不知道结束标记是否在字符串文字中。
    • @Pumbaa80:谢谢。我将不得不考虑一下,也许玩一下。 html 和 Javascript 的结合确实很有趣。在 Fortran 时代,这一切都简单得多,但是,嘿,向前和向上!
    • 另一种方式是 ...&lt;\/script&gt;,因为 JavaScript 将 \/ 视为斜线,但 HTML 解析器不会。
    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2016-06-26
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2011-04-29
    相关资源
    最近更新 更多