浏览器误解了URL中的'&not'

Pin*_*nyM 9 html browser html-parsing

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

<a href="#" onclick="window.location='http://www.example.com?some_param=1&notify=true';">Click here</a>
Run Code Online (Sandbox Code Playgroud)

将呈现为:

<a href="#" onclick="window.location='http://www.example.com?some_param=1¬ify=true';">Click here</a>
Run Code Online (Sandbox Code Playgroud)

我发现一对夫妇的替代品替代&not&%6Eot,或通过发布形式,而不是得到一个参数化URL.但职位是并不总是一个受欢迎的选择和替代是大家公认的黑客-它也将需要处理与其他常见标记为&cent,&curren,&pound,&sect,&copy,&reg...(摘自列表在这里).

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

ama*_*loy 14

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