firefox 中 hash会被预先urldecode

fiefox中如果直接使用 window.location.hash 返回的是已经 urldecode的字符串。chrome则不是。这种情况下,如果接着使用 decodeURIComponent  就很容易遇到错误。

解决办法是使用

location.href.split("#")[1].substring(1)

比如
var hash = window.location.hash.substring(1);
改为

var hash= (location.href.splice("#")[1] || "").substring(1);