【问题标题】:Escaping Double Quotes in HTML Event Handlers在 HTML 事件处理程序中转义双引号
【发布时间】:2010-12-16 02:29:46
【问题描述】:

如何在 HTML 的事件处理程序中转义双引号?

例如,如何正确转义以下代码中的bar,它是一个字符串文字?

<button onclick="foo("bar")")>Click Me</button>

我不能使用单引号作为属性值,因为我使用的是 XHTML。我可以对字符串文字使用单引号,但我希望保持一致。

【问题讨论】:

    标签: javascript html xhtml


    【解决方案1】:
    <button onclick="foo(&quot;bar&quot;);">Click Me</button>
    

    而且,您确实可以在 XHTML 中混合它们,在 W3 validator 中试试这个:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>foo</title>
    </head>
    <body>
    <div onclick='bar("foo");'></div>
    </body>
    </html>
    

    有一些教程说单引号无效,但它们是不正确的。

    【讨论】:

    • 你确定 有效吗?我运气不好。
    • @Tom Tucker:感谢指正,我把其他语言搞砸了。我编辑了我的帖子。
    • 顺便说一句,我对您的答案投了赞成票,但有人投了反对票,因此为零。 :(
    • @Tom Tucker:没问题,我一开始就错了。无论如何,使用&amp;quot; 非常不方便,您可以只使用单引号或在单独的 JavaScript 文件中添加监听器。
    【解决方案2】:

    XHTML 更喜欢在属性两边加上双引号。但是您仍然可以在值内使用单引号。下面的例子是 XHTML 1.0 Strict

    <button onclick="foo('bar')">Click Me</button>
    

    我建议研究 progressive enhancement 并远离行为属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多