12

显然,如果包含文本的 URL&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,或者通过发布表单而不是获取参数化 URL。但是 POST 并不总是一个受欢迎的替代方案,替换无疑是一种 hack——它还需要处理其他常见的标记,如&cent, &curren, &pound, &sect, &copy, &reg... (列表取自此处)。

肯定有人对此有更好的解决方案吗?

4

1 回答 1

18

元素属性由 HTML 解析器解释,因此您必须&将字符转义为&amp;. 即使您不这样做,它也可以在大多数情况下工作,但是在某些情况下(例如您的情况),您必须“正确”地进行操作,否则它将无法正常工作。

于 2013-02-07T21:36:28.037 回答