我试图使用在锚的标题属性中包含双引号的字符串。到目前为止,我尝试了这些:

<a href=".." title="Some \"text\"">Some text</a>
<!-- The title looks like `Some \` --!>

and

<a href=".." title="Some &quot;text&quot;">Some text</a>
<!-- The title looks like `Some ` --!>

请注意,不能使用单引号。


转义代码&#34;也可以用来代替&quot;


下面是一个HTML转义字符的片段,截取自archive.org上的缓存页面:

&#060   |   <   less than sign
&#064   |   @   at sign
&#093   |   ]   right bracket
&#123   |   {   left curly brace
&#125   |   }   right curly brace
&#133   |   …   ellipsis
&#135   |   ‡   double dagger
&#146   |   ’   right single quote
&#148   |   ”   right double quote
&#150   |   –   short dash
&#153   |   ™   trademark
&#162   |   ¢   cent sign
&#165   |   ¥   yen sign
&#169   |   ©   copyright sign
&#172   |   ¬   logical not sign
&#176   |   °   degree sign
&#178   |   ²   superscript 2
&#185   |   ¹   superscript 1
&#188   |   ¼   fraction 1/4
&#190   |   ¾   fraction 3/4
&#247   |   ÷   division sign
&#8221  |   ”   right double quote
&#062   |   >   greater than sign
&#091   |   [   left bracket
&#096   |   `   back apostrophe
&#124   |   |   vertical bar
&#126   |   ~   tilde
&#134   |   †   dagger
&#145   |   ‘   left single quote
&#147   |   “   left double quote
&#149   |   •   bullet
&#151   |   —   longer dash
&#161   |   ¡   inverted exclamation point
&#163   |   £   pound sign
&#166   |   ¦   broken vertical bar
&#171   |   «   double left than sign
&#174   |   ®   registered trademark sign
&#177   |   ±   plus or minus sign
&#179   |   ³   superscript 3
&#187   |   »   double greater-than sign
&#189   |   ½   fraction 1/2
&#191   |   ¿   inverted question mark
&#8220  |   “   left double quote
&#8212  |   —   dash

这种变体——

<标题=“一些”文本“”>将鼠标悬停在我身上</a>

是正确的,它的工作如预期-你看到正常的报价渲染页面。


使用“;就是这样做的。我尝试了您的第二个代码片段,它在Firefox和Internet Explorer中都可以运行。


它可以用于HTML转义字符列表中的任何字符,但我在Java项目中遇到了同样的问题。我使用StringEscapeUtils.escapeHTML("Testing \" <br> <p>")和标题是<a href=".." title="Test"& lt; br&gt;& lt; p&gt; " > < / >测试。

当我把StringEscapeUtils更改为StringEscapeUtils. escapejavascript ("Testing \" <br> <p>")时,它只对我有效,它在每个浏览器中都有效。


至少在一种情况下,使用单引号是行不通的,那就是从JavaScript“动态”创建标记。您可以使用单引号来包含字符串,然后标记中的任何属性的值都可以使用双引号。


也许您可以使用JavaScript来解决跨浏览器的问题。它使用了一种不同的转义机制,你显然已经熟悉了:

(reference-to-the-tag).title = "Some \"text\"";

它并没有像现在人们希望的那样严格地分离HTML、JavaScript和CSS的功能,但是你需要取悦谁呢?你的用户还是你不认识的技术人员?