Do czego służy & amp


109

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&current=true


1
Czy możesz podać kontekst? Czy to jest akcja w formie? Właśnie wyświetlany na stronie?
jprofitt

@ user470184 Nie głosowałem przeciw, ale rozważałem to. W SO jest już mnóstwo informacji dotyczących tego problemu.
Charles Sprayberry

„Ogólne zachowanie” jest nadal dość niejasne. Zastanawiasz się nad czymś takim jak <p>www.testurl.com/test?param1=test&amp;current=true</p>lub <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

Odpowiedzi:


126

& to HTML dla „Początku odwołania do znaku”.

&amp; jest odniesieniem do znaku „ampersand”.

&current; 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. &trade;), 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).



5

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 &amp;podczas pisania adresu URL w znaczniku należy zastąpić ampersandy .

Zauważ, że zastąpienie &z &amp; 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 "&amp;". Z HTML, przeglądarka przekłada "&amp;"się "&"więc serwer sieci Web będzie tylko zobaczyć "&" , a nie "&amp;"w ciągu kwerendy wniosku.

Mam nadzieję że to pomoże : )



-2

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;

1
Pytanie dotyczy &ampHTML, a nie &adresów URL.
Quentin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.