我在 Firefox 和 IE 之间感到沮丧,主要是 Firefox,因为在我可以在 Javascript 中使用它之前,它会自动解码哈希中的参数。 IE 不会自动解码 url,因此不会给我阅读错误。
除了我没有使用 ASP.NET 之外,我的问题与这个类似 ASP.NET MVC automatically decoding JSON-encoded parameters from AJAX
因此,如果我采用类似 example.com/#question=!%40%23%24%25^%26*(
而“!%40%23%24%25^%26*(”是使用 encodeURIComponent 编码的,在 IE 中,当我访问哈希时,它将保留为“!%40%23%24%25^% 26*(",但是在 firefox 中,当我访问哈希时,它会自动解码为 "!@#$%^&*("
问题在于,在我的脚本中,我使用 decodeURIComponent 对编码值进行解码,如果字符串确实已编码,这很好。由于它已经在 Firefox 中解码,它给我一个格式错误的 URI 序列错误,而 IE 根本没有给我任何错误。
我该如何解决这个问题?
最佳答案
经过搜索我发现这是一个跨浏览器的问题,最好使用location.href.split("#")[1]
而不是window.location .hash
关于javascript - Firefox 自动解码 url 中的编码参数,在 IE 中不会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4835784/