2013-02-07 14 views
8

Wygląda na to, że jeśli adres URL zawierający tekst &not jest używany jako część właściwości pola, wiele przeglądarek interpretuje to jako '¬'. Więc ten kod HTML:Niewłaściwe interpretowanie przeglądarki "i nie" pod adresem URL

<a href="#" onclick="window.location='http://www.example.com?some_param=1&notify=true';">Click here</a> 

będą renderowane jako:

<a href="#" onclick="window.location='http://www.example.com?some_param=1¬ify=true';">Click here</a> 

znalazłem kilka alternatyw zastępując &not z &%6Eot, lub poprzez umieszczenie formularza zamiast się parametryczne URL. Ale Posty nie zawsze są doskonałą alternatywą i substytucji jest wprawdzie hack - będzie to również muszą radzić sobie z innymi wspólnymi tokenów jak &cent, &curren, &pound, &sect, &copy, &reg ... (lista pochodzi z here).

Z pewnością ktoś ma lepsze rozwiązanie tego problemu?

Odpowiedz

11

Atrybuty elementów są interpretowane przez analizator składni HTML, więc należy uciec od znaków & jako &amp;. Działa przez większość czasu, nawet jeśli nie, ale w niektórych przypadkach (takich jak twoje) musisz zrobić to "dobrze" lub nie będzie działać.

+0

Dzięki, nie mogę uwierzyć, że o tym zapomniałem! – PinnyM

+0

Zawsze o tym zapominam. Nie jestem pewien, czy jestem zadowolony, czy smutny, że zazwyczaj działa, bo na pewno łatwiej jest zapomnieć w ten sposób! – amalloy

Powiązane problemy