2012-01-16 10 views
14

I have read Devo codificare la mia e commerciale come & in HTML.
Tuttavia numerosi campioni di codice da aziende rispettate in qualche modo dimenticare di fare questo.Perché la documentazione di Twitter e dell'API di Google non codifica la e commerciale negli URL?

Solo alcuni esempi fuori della parte superiore della mia testa:

Google Web Fonts codice di esempio:

<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'> 

Google Maps documentazione:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja"> 

Twitter Anywhere esercitazione ufficiale:

<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script> 

Esiste un reale vantaggio da non durante l'escape della e commerciale nei collegamenti?
Questo è legato alle stranezze del browser? È solo un errore nella documentazione?

Cari answerers, si prega di assicurarsi che si sta rispondendo alla domanda destra.

So che I dovrebbe escape ampersands per spec. So anche perché il meccanismo è stato inventato in primo luogo. Io non sono asking about this. La mia domanda è:

Esiste un motivo La documentazione API di società rispettabili spesso viola questa regola?

+0

I rispondenti, si prega di notare che non lo fanno perché è corretto. Non riuscire a codificare la e commerciale viola effettivamente la [specifica HTML 4.1, sezione 5.3.2: Riferimenti di entità di carattere] (http://www.w3.org/TR/html401/charset.html#h-5.3.2): * Autori dovrebbe utilizzare "&" (decimale ASCII 38) anziché "&" per evitare confusione con l'inizio di un riferimento di carattere (delimitatore di apertura riferimento entità). ** Gli autori dovrebbero anche usare "&" nei valori degli attributi poiché i riferimenti ai caratteri sono consentiti nei valori degli attributi CDATA. *** –

+1

Dan, mi rendo conto che sei già collegato a una domanda al riguardo nel tuo post, ma i rispondenti correnti sembrano aver perso esso. –

+0

@Jeremy: grazie per l'osservazione, ho modificato la domanda. –

risposta

4

Esiste un reale vantaggio derivante dall'esclusione di e commerciale nei collegamenti?

fa risparmiare pochi tasti.

Ciò è dovuto alle stranezze del browser?

No

Si tratta solo di un errore nella documentazione?

C'è una documentazione API ragione da aziende rispettabili spesso viola questa regola?

Ignoranza e/o pigrizia. I browser eseguono il recupero degli errori in modo che non si accorgano degli errori o che non gli importi. La documentazione probabilmente non è scritta dai loro migliori esperti.

5

Due diversi contesti qui.

  1. Nel contesto di un javascript href, lo & va bene e non deve essere codificato.
  2. In un collegamento HTML lo & è vietato e deve essere preceduto dall'esclusione.

Nel contesto di collegamento HTML un'entità di carattere HTML verrà decodificata prima che l'indirizzo venga passato al processo HTTP; un carattere con codifica URL non lo sarà, poiché il server può leggerlo direttamente.

Problemi correlati