如何在title属性中使用双引号
我正在试图使用在锚的title属性中包含双引号的string。 到目前为止,我试过这些:
<a href=".." title="Some \"text\"">Some text</a> <!-- title looks like `Some \` --!>
和
<a href=".." title="Some "text"">Some text</a> <!-- title looks like `Some ` --!>
请注意,使用单引号不是一个选项。
这个变种 –
<a href=".." title="Some "text"">Some text</a>
是正确的,它按预期工作 – 你看到渲染页面中的正常引号。
编辑:链接似乎已经死了,所以这里是从archive.org上的caching页面采取的转义字符片段:
< | less than sign < @ | at sign @ ] | right bracket ] { | left curly brace { } | right curly brace } … | ellipsis … ‡ | double dagger ‡ ’ | right single quote ' ” | right double quote ” – | short dash – ™ | trademark ™ ¢ | cent sign ¢ ¥ | yen sign ¥ © | copyright sign © ¬ | logical not sign ¬ ° | degree sign ° ² | superscript 2 ² ¹ | superscript 1 ¹ ¼ | fraction 1/4 ¼ ¾ | fraction 3/4 ¾ ÷ | division sign ÷ ” | right double quote ” > | greater than sign > [ | left bracket [ ` | back apostrophe ` | | vertical bar | ~ | tilde ~ † | dagger † ‘ | left single quote ' “ | left double quote “ • | bullet • — | longer dash — ¡ | inverted excallamation point ¡ £ | pound sign £ ¦ | broken vertical bar ¦ « | double left than sign « ® | registered trademark sign ® ± | plus or minus sign ± ³ | superscript 3 ³ » | double greather than sign » ½ | fraction 1/2 ½ ¿ | inverted question mark ¿ “ | left double quote “ — | dash —
/编辑
给这个一个镜头
HTML转义字符列表。
这是所有这些angular色的一个很好的参考。
是否"
而不是"
工作?
使用"
是做到这一点的方法,我试过了你的第二个代码片段,它可以在Firefox和IE上运行。
它可能适用于HTML Escape字符列表中的任何字符,但是我也遇到了与Java项目相同的问题。 我使用了StringEscapeUtils.escapeHTML("Testing \" <br> <p>")
,标题是<a href=".." title="Test" <br> <p>">Testing</a>
<a href=".." title="Test" <br> <p>">Testing</a>
<a href=".." title="Test" <br> <p>">Testing</a>
。
当我将StringEscapeUtils更改为StringEscapeUtils.escapeJavascript("Testing \" <br> <p>")
并且它在每个浏览器中都能正常工作时,它只适用于我。
至less有一种情况,使用单引号不起作用,那就是如果你正在从Javascript创build标签“即时”。 您使用单引号来包含string,然后在标记中的任何属性可以有双引号的值。
也许你可以使用JavaScript来解决你的跨浏览器问题。 它使用了一种不同的转义机制,显然你已经很熟悉了:
(reference-to-the-tag).title = "Some \"text\"";
它并没有像现在人们想要的那样严格地将HTML,JS和CSS的function分开,但是你需要让谁开心? 你不认识的用户或技术人员?
您可以使用此PHP代码来列出特殊字符…
<table border="1"><?php for($i=33;$i<9000;$i++)echo "<tr><td>&#$i;<td>&#".$i.";"; ?></table>