Is er een verschil in gedrag van onderstaande URL.
Ik weet niet waarom de &
is ingevoegd, maakt het enig verschil?
www.testurl.com/test?param1=test&current=true
tegen
www.testurl.com/test?param1=test¤t=true
Antwoord 1, autoriteit 100%
&
is HTML voor “Begin van een tekenreferentie”.
&
is de tekenreferentie voor “Een ampersand”.
¤t;
is geen standaard tekenreferentie en dat geldt ook voor een fout (browsers kunnen proberen foutherstel uit te voeren, maar u mag hier niet van afhankelijk zijn).
Als je een tekenreferentie voor een echt teken hebt gebruikt (bijv. ™
), dan zou deze (™) in de URL verschijnen in plaats van de gewenste tekenreeks.
(Merk op dat, afhankelijk van de versie van HTML die u gebruikt, u mogelijk een tekenverwijzing moet beëindigen met een ;
, daarom zal &trade=
behandeld als ™. HTML 4 staat toe dat het wordt weggelaten als het volgende teken een niet-woordteken is (zoals =
), maar sommige browsers (Hallo Internet Explorer) hebben hier problemen mee).
Antwoord 2, autoriteit 5%
HTML herkent de &
niet, maar het herkent &
omdat het gelijk is aan &
in HTML
Ik heb dit bericht bekeken dat iemand had geplaatst: http://www.webmasterworld.com/ forum21/8851.htm
Antwoord 3, autoriteit 4%
Mijn bron: http://htmlhelp.com/tools/validator/problems.html #amp
Een andere veelvoorkomende fout treedt op bij het opnemen van een URL die een . bevat
ampersand (“&”):
Dit is ongeldig:
a href=”foo.cgi?chapter=1§ion=2©=3&lang=nl”
Uitleg:
Dit voorbeeld genereert een fout voor “onbekende entiteitsectie” omdat
de"&"
wordt verondersteld om een entiteitsverwijzing te beginnen. Browsers vaak
veilig herstellen van dit soort fouten, maar echte problemen doen zich voor in
sommige gevallen. In dit voorbeeld converteren veel browsers ©=3 . correct
tot =3, waardoor de koppeling kan mislukken. Sinds 〈 is de HTML
entiteit voor de naar links wijzende punthaak, sommige browsers converteren ook
&lang=nl naar ?=nl. En een oude browser vindt zelfs de entiteit §,
§ion=2 omzetten in ion=2.
Het doel hier is dus om problemen te voorkomen wanneer u uw website probeert te valideren. U moet dus uw ampersands vervangen door &
wanneer u een URL in uw opmaak schrijft.
Houd er rekening mee dat het vervangen van
&
door&
; wordt alleen gedaan bij het schrijven van de URL in
HTML, waarbij"&"
een speciaal teken is (samen met “<” en “>”). Wanneer
dezelfde URL schrijven in een e-mailbericht zonder opmaak of op de locatie
balk van uw browser, zou u"&"
gebruiken en niet"&"
. Met HTML, de
browser vertaalt"&"
naar"&"
zodat de webserver alleen"&"
ziet
en niet"&"
in de queryreeks van het verzoek.
Hopelijk helpt dit : )
Antwoord 4
Dat is een goed voorbeeld. Wanneer &current
wordt geparseerd in een tekstknooppunt, wordt het geconverteerd naar ¤t
. Wanneer het in een attribuutwaarde wordt geparseerd, wordt het geparseerd als &current
.
Als u &current
in een tekstknooppunt wilt, moet u &current
in uw opmaak schrijven.
De bloederige details staan in de HTML5-parsingspecificatie – Genoemde karakterreferentiestatus
Antwoord 5
als je een reeks tekens maakt.
maak:
let linkGoogle = 'https://www.google.com/maps/dir/?api=1';
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];
aNav.href = linkGoogle + origin;