2010-09-20 23 views
137

Sto provando a utilizzare una stringa che contiene virgolette doppie nell'attributo title di un'ancora. Finora ho provato questi:Come evitare le virgolette doppie nell'attributo titolo

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

e

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

Si prega di notare che l'utilizzo di virgolette singole è non un'opzione.

+16

@Haim leggere la domanda ... si dice "apici non è un'opzione". –

+0

Nel secondo esempio di firefox sembra buono. – jcubic

+2

@harpax - Ero solo curioso di sapere perché le virgolette singole non sono un'opzione? –

risposta

215

Questa variante -

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

è corretto e funziona come previsto - vedi le citazioni normali in pagina visualizzata.

+0

Sì. 'Testing' e 'Testing too' lavoro per me. –

+3

@Maris: Beh ... non vedo le virgolette normali nella pagina di rendering quando eseguo " (Firefox, Chrome). Perché? –

+0

@Maris, lo stesso problema qui. Vedere il testo """ visualizzato in IE e Chrome quando l'utente passa sopra l'elemento. – rstackhouse

6

Il &#34; invece di &quot; funziona?

18

EDIT: Collegamento sembra essere morto, ecco un frammento dei caratteri di escape tratti da una pagina in cache su 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 — 

/EDIT

dare a questo un colpo

HTML Escape character list.

È un ottimo riferimento per tutti questi personaggi.

+8

Mentre questo link può rispondere domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. –

+2

@KobiK buon shout - aggiornato. – Dave

+0

... e manca lo standard '"' virgolette .... – Paul

3

L'utilizzo di &quot; è il modo per farlo, ho provato il secondo snippet di codice e funziona sia su Firefox che su IE.

1

Può funzionare con qualsiasi carattere da HTML Escape character list, ma ho avuto lo stesso problema con un progetto Java. Ho usato StringEscapeUtils.escapeHTML("Testing \" <br> <p>") e il titolo era <a href=".." title="Test&quot; &lt;br&gt; &lt;p&gt;">Testing</a>.

Ha funzionato solo per me quando ho modificato StringEscapeUtils su StringEscapeUtils.escapeJavascript("Testing \" <br> <p>") e ha funzionato in tutti i browser.

+0

la soluzione migliore a mio parere –

+0

Bene, se stai usando Java, ma come il ricercatore originale sta chiedendo l'HTML, forse questa non è un'opzione. – Paul

1

C'è almeno una situazione in cui l'uso di virgolette singole non funziona e cioè se si sta creando il markup "al volo" da Javascript. Si usano virgolette singole per contenere la stringa e quindi qualsiasi proprietà nel markup può avere virgolette doppie per il suo valore.

0

Forse puoi utilizzare JavaScript per risolvere il tuo problema relativo al browser. Esso utilizza un meccanismo di fuga diverso, quello con cui si è ovviamente già familiarità:

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

Esso non strettamente separare le funzioni di HTML, JS e CSS il modo in cui la gente vogliono che tu al giorno d'oggi, ma che si fanno bisogno di fare felice? I tuoi utenti o tecnici che non conosci?

+0

Overkill quando l'esult desiderato può essere ottenuto in un modo molto più diretto. – Paul

-1

È possibile utilizzare questo codice PHP per elencare i caratteri speciali ...

<table border="1"><?php for($i=33;$i<9000;$i++)echo "<tr><td>&#38;#$i;<td>&#".$i.";"; ?></table> 
Problemi correlati