Firefox为pushState编码URI - 解决方法?

时间:2017-08-30 18:00:15

标签: javascript html5 firefox pushstate html5-history

在Firefox中,当您使用window.history.pushState时,它会自动为您编码URI。在其他浏览器(IE,Chrome,Safari)中,它没有。因此,如果您希望对URI进行编码,则需要自己进行编码(即使用encodeURI) - 除非您使用的是Firefox。

要亲自查看此内容,请在Chrome开发者控制台和Firefox开发者控制台中运行此代码:

window.history.pushState({},'asdf','#spaces or percent twenties');
location.href;
// Firefox: "...#spaces%20or%020percent%20twenties"
// Other browsers: "...#spaces or percent twenties"
window.history.pushState的{​​{3}}未指定对URI进行编码,因此我认为这是Firefox的错误。

与此同时,在统一之前,我需要一种解决方法来让Firefox发挥出色。有什么建议吗?

0 个答案:

没有答案