A cosa serve & amp


107

C'è qualche differenza nel comportamento dell'URL sottostante.

Non so perché &sia inserito, fa differenza?

www.testurl.com/test?param1=test&current=true

contro

www.testurl.com/test?param1=test&current=true


1
Puoi fornire un contesto? È in un'azione del modulo? Appena visualizzato su una pagina?
jprofitt

@ user470184 Non ho votato in negativo ma l'ho considerato. Ci sono già un sacco di informazioni su SO riguardo a questo problema.
Charles Sprayberry

Il "comportamento generico" è ancora piuttosto vago. Ti stai chiedendo qualcosa come <p>www.testurl.com/test?param1=test&amp;current=true</p>o <a href="www.testurl.com/test?param1=test&amp;current=true">linky</a>?
jprofitt

@ jprofitt <a href="www.testurl.com/test?param1=test&current=true"> linky </a>
blue-sky

Risposte:


126

& è HTML per "Inizio di un riferimento a carattere".

&amp; è il riferimento al carattere per "Una e commerciale".

&current; non è un riferimento a caratteri standard e quindi è un errore (i browser potrebbero tentare di eseguire il ripristino degli errori, ma non dovresti dipendere da questo).

Se hai utilizzato un riferimento a un carattere per un carattere reale (es. &trade;), Nell'URL apparirà (™) invece della stringa che desideri.

(Tieni presente che, a seconda della versione di HTML che utilizzi, potresti dover terminare un riferimento a carattere con a ;, motivo &trade=per cui verrà trattato come ™. HTML 4 consente di ignorarlo se il carattere successivo è un carattere non composto da una parola ( come =) ma alcuni browser (Hello Internet Explorer) hanno problemi con questo).



5

La mia fonte: http://htmlhelp.com/tools/validator/problems.html#amp

Un altro errore comune si verifica quando si include un URL che contiene una e commerciale ("&"):

Questo non è valido:

a href = "foo.cgi? chapter = 1 & section = 2 & copy = 3 & lang = it"

Spiegazione:

Questo esempio genera un errore per "sezione entità sconosciuta" perché "&"si presume che inizi un riferimento a entità. I browser spesso si ripristinano in modo sicuro da questo tipo di errore, ma in alcuni casi si verificano problemi reali. In questo esempio, molti browser convertono correttamente & copy = 3 in © = 3, il che potrebbe causare il fallimento del collegamento. Poiché ⟨è l'entità HTML per la parentesi angolare rivolta a sinistra, alcuni browser convertono anche & lang = en in 〈= en. E un vecchio browser trova persino l'entità §, convertendo & section = 2 in §ion = 2.

Quindi l'obiettivo qui è evitare problemi quando provi a convalidare il tuo sito web. Quindi dovresti sostituire la tua e commerciale con &amp;quando scrivi un URL nel tuo markup.

Notare che la sostituzione &con &amp; viene fatto solo quando si scrive l'URL in HTML, dove "&"è un carattere speciale (insieme a "<" e ">"). Quando scrivi lo stesso URL in un messaggio di posta elettronica di testo normale o nella barra degli indirizzi del tuo browser, dovresti usare "&"e non "&amp;". Con HTML, il browser si traduce in "&amp;"in "&"modo che il server Web veda solo "&" e non "&amp;"nella stringa di query della richiesta.

Spero che questo ti aiuti : )



-2

se stai facendo una stringa di caratteri. rendere:

let linkGoogle = 'https://www.google.com/maps/dir/?api=1'; 
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];


aNav.href = linkGoogle + origin;

1
La domanda riguarda l' &ampHTML, non gli &URL.
Quentin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.