浏览器错误地解释了URL中的“¬”

时间:2013-02-07 21:34:56

标签: html browser html-parsing

显然,如果包含文本&not的网址用作字段属性的一部分,则许多浏览器会将其解释为'¬'。所以这个HTML代码:

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

将呈现为:

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

我通过用&not替换&%6Eot,或者通过POST表单而不是GETting参数化的URL来找到几个替代方案。但是POST并不总是一个受欢迎的替代方案,而且替换肯定是一个黑客 - 它还需要处理其他常见的令牌&cent&curren&pound&sect&copy&reg ...(摘自here)。

当然有人有更好的解决方案吗?

1 个答案:

答案 0 :(得分:14)

元素属性由HTML解析器解释,因此您必须将&个字符转义为&amp;。它大部分时间都可以工作,即使你不这样做,但在某些情况下(例如你的),你必须“正确”做到这一点,否则它将无效。