2013-02-07 8 views
8

Apparentemente se un URL contenente il testo &not viene utilizzato come parte di una proprietà del campo, molti browser interpretano questo come '¬'. Quindi, questo codice HTML:Interpretazione errata del browser '& not' nell'URL

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

sarà reso come:

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

ho trovato un paio di alternative sostituendo &not con &%6Eot, o inviando una forma invece di ottenere un URL con parametri. Ma I post non sono sempre una gradita alternativa e la sostituzione è certamente un hack - sarà anche bisogno di trattare con altri token comuni &cent, &curren, &pound, &sect, &copy, &reg ... (lista preso da here).

Sicuramente qualcuno là fuori ha una soluzione migliore per questo?

risposta

11

Gli attributi degli elementi vengono interpretati dal parser HTML, quindi è necessario sfuggire ai caratteri & come &amp;. Funziona la maggior parte del tempo anche se non lo fai, ma in alcuni casi (come il tuo) devi farlo "giusto" o non funzionerà.

+0

Grazie, non posso credere di averlo dimenticato! – PinnyM

+0

Anche io lo dimentico sempre. Non sono sicuro se sono contento o triste del fatto che di solito funzioni, perché è certamente più facile dimenticarlo in questo modo! – amalloy

Problemi correlati