JavaScript document.location.href 似乎期待 HTML

JavaScript document.location.href seems to expect HTML

本文关键字:期待 HTML href document location JavaScript      更新时间:2023-09-26

如果我在IE 11控制台中执行此操作:

document.location.href="a&b";

我收到一个错误,说:

Not found - The requested URL /a&b was not found on this server.

但是,它不应该抱怨a&b没有被发现吗?恰好包含HTML实体的URL似乎被解释为HTML,尽管这里实际上没有任何内容连接到HTML。

我在 onclick 属性中有一个名为 copy_from 的 GET 参数时遇到了这个问题,尽管正确转义了与号(&copy_from=),但最终 URL 中显示了一个版权字符。(它在IE中通过两次转义与号来工作,但随后在其他浏览器中失败。

我错过了什么还是这是IE错误?

我确实认为这是一个错误。如果在javascript中指定了"/a&b",那么请求的URL应该与HTML实体无关。大多数浏览器都试图将您重定向到"/a&b",正如预期的那样,这一事实支持了这一点。

我以前见过这样的浏览器之间的很多不一致之处。

这可能是有人(比我有更多的时间)可以找到一种利用方式的事情。

但是,如果文档是XHTML - 并解释为XML - 则需要在包含与号的内联javascript周围使用CDATA部分,例如,脚本标记中何时需要CDATA部分?

在实践中,很少这样做,这就是为什么这可能是一个错误。