Bir başlık özelliğinde çift tırnak nasıl kaçınır


195

Bir çapa başlık özniteliğinde çift tırnak içeren bir dize kullanmaya çalışıyorum. Şimdiye kadar bunları denedim:

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

ve

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

Tek tırnak işareti kullanmanın bir seçenek olmadığını lütfen unutmayın .


18
@ Soruyu okuyun… “tek tırnak bir seçenek değil” diyor.
Nils Riedemann

2
@harpax - Tek tırnakların neden bir seçenek olmadığını merak ettim?
Bert F

3
Tek tırnak geçerli html değil.
skyfoot

1
İkinci örneğiniz kesinlikle mükemmel şekilde çalışmalıdır. Sorunu hangi tarayıcıda görüyorsunuz?
Olly Hodgson

1
@ harpax: belki "tek tırnak bir seçenek değildir" -gereksinimi açıklamak gerekir. "İçinde '' dize" tek tırnak (kullanıcıya görüntüleniyor gibi) bir seçenek değildir, ama Haim yukarıda gösterildiği gibi sadece tek ve çift tırnak saygısız Tamam olurdu olacağını tahmin olurdu.
Christian.K

Yanıtlar:


284

Bu varyant -

<a title="Some &quot;text&quot;">Hover me</a>

Doğrudur ve beklendiği gibi çalışır - işlenmiş sayfada normal tırnak işaretleri görürsünüz.


Evet. <a href="#" title="Foo &quot;Bar&quot;">Testing</a>ve <a href="#" title="Smart quotes &#8221;Bar&#8220;">Testing too</a>benim için çalışıyorum.
Olly Hodgson

5
@Maris: Şey ... yaptığımda işlenmiş sayfada normal tırnaklar görmüyorum & quot; (Firefox, Chrome). Neden?
Krzysztof Trzos

@Maris, aynı sorun burada. "& Quot;" metnine bakın kullanıcı öğenin üzerine geldiğinde hem IE'de hem de Chrome'da görünür.
rstackhouse

Şaşırtıcı özellik içinde gömülü html içeriği ile çalıştı (javascript için düzenlenebilir textarea üretmek için):data-editable-note="<?php echo str_replace('"', '&quot;', $note); ?>"><?php echo mark::up($note); ?></div>
WEBjuju

23

İşte archive.org'daki önbelleğe alınmış bir sayfadan alınan HTML çıkış karakterlerinin bir pasajı :

&#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    —   

9

Bunun &#34;yerine çıkış kodu da kullanılabilir &quot;.


3

Kullanmanın &quot;yolu budur. İkinci kod snippet'inizi denedim ve hem Firefox hem de Internet Explorer'da çalışıyor.


2

HTML Escape karakter listesindeki herhangi bir karakterle çalışabilir , ancak bir Java projesi ile aynı sorunu yaşadım. Ben kullandım StringEscapeUtils.escapeHTML("Testing \" <br> <p>")ve başlık oldu <a href=".." title="Test&quot; &lt;br&gt; &lt;p&gt;">Testing</a>.

Sadece benim için StringEscapeUtils değiştirdi StringEscapeUtils.escapeJavascript("Testing \" <br> <p>")ve her tarayıcıda çalıştı.


bence en iyi çözüm
Mohammed Rafeeq

Java kullanıyorsanız iyi, ancak orijinal sorgulayıcı HTML istediğinde, belki de bu bir seçenek değildir.
Paul

1

Tek tırnak kullanmanın işe yaramayacağı en az bir durum vardır ve bu, JavaScript'ten "anında" biçimlendirmesini oluşturuyorsanız. Dizeyi içermek için tek tırnak kullanırsınız ve ardından işaretlemedeki herhangi bir özellik, değeri için çift tırnak içerebilir.


1

Tarayıcılar arası sorununuzu çözmek için JavaScript kullanabilirsiniz. Zaten aşina olduğunuz farklı bir kaçış mekanizması kullanıyor:

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

HTML, JavaScript ve CSS'nin işlevlerini, insanların bugünlerde sizden istediği şekilde kesin olarak ayırmıyor, ama kimi mutlu etmeniz gerekiyor? Kullanıcılarınız veya bilmediğiniz teknikler?


İstenilen sonuç çok daha basit bir şekilde elde edilebildiğinde aşırı doldurma.
Paul

-3

Bu PHP kodunu özel karakterleri listelemek için kullanabilirsiniz ...

<table border="1"><?php for($i=33;$i<9000;$i++)echo "<tr><td>&#38;#$i;<td>&#".$i.";"; ?></table>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.