Czy jest jakaś różnica w zachowaniu poniższego adresu URL.
Nie wiem, dlaczego &
jest włożona, czy to ma znaczenie?
www.testurl.com/test?param1=test&current=true
przeciw
www.testurl.com/test?param1=test¤t=true
Czy jest jakaś różnica w zachowaniu poniższego adresu URL.
Nie wiem, dlaczego &
jest włożona, czy to ma znaczenie?
www.testurl.com/test?param1=test&current=true
przeciw
www.testurl.com/test?param1=test¤t=true
<p>www.testurl.com/test?param1=test&current=true</p>
lub <a href="www.testurl.com/test?param1=test&current=true">linky</a>
?
Odpowiedzi:
&
to HTML dla „Początku odwołania do znaku”.
&
jest odniesieniem do znaku „ampersand”.
¤t;
nie jest standardowym odwołaniem do znaków i tak samo jest z błędem (przeglądarki mogą próbować naprawić błąd, ale nie powinieneś na tym polegać).
Jeśli użyłeś odwołania do znaku dla prawdziwego znaku (np. ™
), To (™) pojawi się w adresie URL zamiast żądanego ciągu.
(Zwróć uwagę, że w zależności od używanej wersji HTML może być konieczne zakończenie odniesienia do znaku znakiem a ;
, dlatego &trade=
będzie traktowane jako ™. HTML 4 umożliwia pominięcie tego znaku, jeśli następny znak jest znakiem niebędącym słowem ( takie jak =
), ale niektóre przeglądarki (Hello Internet Explorer) mają z tym problemy).
HTML nie rozpoznaje elementu, &
ale rozpozna &
go, ponieważ jest równy&
w HTML
Przejrzałem ten post, który ktoś napisał: http://www.webmasterworld.com/forum21/8851.htm
Moje źródło: http://htmlhelp.com/tools/validator/problems.html#amp
Inny częsty błąd występuje podczas dołączania adresu URL zawierającego znak „&”:
To jest nieprawidłowe:
a href = "foo.cgi? Chapter = 1 & section = 2 & copy = 3 & lang = pl"
Wyjaśnienie:
Ten przykład generuje błąd dla „sekcji nieznanej jednostki”, ponieważ
"&"
zakłada się, że rozpoczyna się odwołanie do jednostki. Przeglądarki często bezpiecznie wychodzą z tego rodzaju błędów, ale w niektórych przypadkach pojawiają się prawdziwe problemy. W tym przykładzie wiele przeglądarek poprawnie konwertuje & copy = 3 na © = 3, co może spowodować błąd łącza. Ponieważ ⟨jest jednostką HTML dla nawiasu trójkątnego skierowanego w lewo, niektóre przeglądarki również konwertują & lang = en na 〈= en. Jedna stara przeglądarka nawet znajduje jednostkę §, konwertując & section = 2 na §ion = 2.
Dlatego celem jest uniknięcie problemów podczas próby weryfikacji witryny. Dlatego &
podczas pisania adresu URL w znaczniku należy zastąpić ampersandy .
Zauważ, że zastąpienie
&
z&
; odbywa się tylko podczas pisania adresu URL w HTML, gdzie"&"
jest znakiem specjalnym (razem z „<” i „>”). Pisząc ten sam adres URL w zwykłej wiadomości e-mail z tekstem lub na pasku adresu przeglądarki, używałbyś,"&"
a nie"&"
. Z HTML, przeglądarka przekłada"&"
się"&"
więc serwer sieci Web będzie tylko zobaczyć"&"
, a nie"&"
w ciągu kwerendy wniosku.
Mam nadzieję że to pomoże : )
To świetny przykład. Kiedy ¤t
jest analizowany do węzła tekstowego , jest konwertowany na ¤t
. Podczas analizowania do wartości atrybutu jest analizowany jako ¤t
.
Jeśli chcesz ¤t
mieć węzeł tekstowy, powinieneś wpisać &current
swój znacznik.
Krwawe szczegóły są tutaj: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
jeśli robisz ciąg znaków. robić:
let linkGoogle = 'https://www.google.com/maps/dir/?api=1';
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];
aNav.href = linkGoogle + origin;
&
HTML, a nie &
adresów URL.