【问题标题】:special characters in embedded javascript嵌入式javascript中的特殊字符
【发布时间】:2011-01-19 03:42:45
【问题描述】:

我有一些像这样嵌入在 html 文件中的 javascript

<html>
    <head>
        <script>
            // and the script runs here
        </script>
    </head>
    <body></body>
</html>

它有这样一行

if((os == 'Mac')&&((br == 'Safari')||(br == 'Chrome')))

一切正常(这意味着脚本有效),但 the validator 正在尖叫:

...字符“&”是分隔符的第一个字符,但作为数据出现
...此消息可能会在几种情况下出现:
-您尝试在页面中包含“ - 您使用了未转义的 & 符号:这在某些情况下可能有效,但建议使用“&”,它始终是安全的。
-另一种可能是您忘记在前一个标签中关闭引号。

用 &amp 代替所有的 & 似乎很荒谬。我怎样才能摆脱这个错误?

【问题讨论】:

    标签: javascript validation xhtml


    【解决方案1】:

    如果您使用的是 XHTML,则需要将内联脚本包含在 CDATA section 中:

    <script type="text/javascript">
    // <![CDATA[
        document.write("&");
    // ]]>
    </script>
    

    进一步阅读:

    【讨论】:

    • 该死的,谢谢。我不得不逃避&lt;![CDATA[这件事似乎很有趣
    • 那是因为当您告诉浏览器它是 text/html 而不是 application/xhtml+xml 时,您正在尝试编写既是 XHTML 又足够接近 HTML 的东西。这比 IMO 更值得付出更多的努力,所以我坚持编写 HTML 4.01。
    • ...我仍然使用 XHTML,但对于任何大量代码都坚持使用外部脚本。无论哪种方式,都应避免显式浏览器嗅探。
    • @bobince:我不会,但设计师这样做了,所以我最好别管它 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多