web-dev-qa-db-ja.com

title属性で二重引用符をエスケープする方法

アンカーのタイトル属性に二重引用符を含む文字列を使用しようとしています。これまでのところ、私はこれらを試しました:

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

そして

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

単一引用符の使用はnotオプションであることに注意してください。

171
harpax

このバリアント-

<a href=".." title="Some &quot;text&quot;">Some text</a>

正しく、期待どおりに動作します-レンダリングされたページに通常の引用符が表示されます。

252

編集:リンクは死んでいるように見えるので、ここに 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 excallamation 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 greather than sign   »   
&#189   |   fraction 1/2    ½   
&#191   |   inverted question mark  ¿   
&#8220  |   left double quote   “   
&#8212  |   dash    —   

/編集

これを試して

HTMLエスケープ文字リスト。

これらすべてのキャラクターの素晴らしいリファレンスです。

21
Dave

&#34;の代わりにエスケープコード&quot;を使用することもできます。

7
fredley

&quot;を使用する方法です。2番目のコードスニペットを試してみましたが、FirefoxとIEの両方で動作します。

3
TheCee

HTMLエスケープ文字リスト の任意の文字で動作する可能性がありますが、Javaプロジェクトでも同じ問題が発生しました。 StringEscapeUtils.escapeHTML("Testing \" <br> <p>")を使用し、タイトルは<a href=".." title="Test&quot; &lt;br&gt; &lt;p&gt;">Testing</a>でした。

StringEscapeUtilsをStringEscapeUtils.escapeJavascript("Testing \" <br> <p>")に変更して、すべてのブラウザーで機能するようになったときにのみ機能しました。

2
Rodrigo Horta

単一引用符を使用しても機能しない状況が少なくとも1つあります。それは、Javascriptから「オンザフライ」でマークアップを作成している場合です。一重引用符を使用して文字列を含めると、マークアップ内のプロパティにその値の二重引用符を含めることができます。

1
cvadillo

おそらく、JavaScriptを使用して、クロスブラウザーの問題を解決できます。それは別のエスケープメカニズムを使用します。

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

最近の人々が望むように、HTML、JS、およびCSSの機能を厳密に分離していませんが、誰を幸せにする必要がありますか?あなたの知らないユーザーや技術は?

0
WebManWalking