2013-02-07 6 views
8

Offenbar, wenn eine URL, die den Text &not enthält, als Teil einer Feldeigenschaft verwendet wird, interpretieren viele Browser dies als '¬'. Also dieser HTML-Code:Browser falsch interpretieren "& nicht" in URL

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

wird übertragen, wie:

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

ich ein paar Alternativen gefunden &not mit &%6Eot ersetzt oder durch ein Formular POSTen stattdessen eine parametrisierte URL des Erhaltens. Aber POSTs ist nicht immer eine willkommene Alternative und Substitution ist zugegebenermaßen ein Hack - es wird auch mit anderen gängigen Token als &cent, &curren, &pound, &sect, &copy, &reg ... (Liste von here genommen) befassen muß.

Sicher hat jemand da draußen eine bessere Lösung?

Antwort

11

Elementattribute werden vom HTML-Parser interpretiert, daher müssen & Zeichen als &amp; entkoppelt werden. Es funktioniert die meiste Zeit, auch wenn Sie es nicht tun, aber in einigen Fällen (wie bei Ihnen) müssen Sie es "richtig" machen oder es wird nicht funktionieren.

+0

Danke, kann nicht glauben, dass ich das vergessen habe! – PinnyM

+0

Das vergesse ich auch immer. Ich bin mir nicht sicher, ob ich froh oder traurig bin, dass es normalerweise funktioniert, weil es leichter ist, diesen Weg zu vergessen! – amalloy

Verwandte Themen