代码之家  ›  专栏  ›  技术社区  ›  phunehehe

嵌入式javascript中的特殊字符

  •  1
  • phunehehe  · 技术社区  · 14 年前

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

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

    它有一条这样的线

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

    一切正常(这意味着脚本可以工作),但是 the validator 尖叫:

    …字符“&”是分隔符的第一个字符,但作为数据出现
    …此消息可能在以下几种情况下出现:
    -您试图在页面中包含“<”字符:应将其作为“<”转义。
    -您使用了未转义的和号“&”:这在某些情况下可能有效,但建议使用“&”,这是始终安全的。
    -另一种可能是您忘记了在前一个标记中结束引号。

    用&替换所有的&似乎很荒谬。我怎样才能消除那个错误呢?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Daniel Vassallo    14 年前

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

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

    进一步阅读: