目标:data
正确地将属性中的字符串放入window.location.hash
.
编码:
map = {path: $(this).attr('data-path'), rev: $(this).attr('data-rev')};
window.location.hash = getMapParams(map);
function getMapParams(map) {
s="";
for(key in map) {
value=eval("map."+key);
if (s.length > 0) {
s+="&";
}
s+=encodeURIComponent(key)+"="+encodeURIComponent(value);
}
return s;
}
问题:一旦data-path
属性包含空格,Firefox 就无法正确放置散列。该空间将显示为未编码,而在其他浏览器中它被正确编码为%20
.
奇怪的怪癖:如果我调试代码,则字符串与编码空间一起列出。
完成的研究:我找到了很多在 Firefox 中正确读取哈希的解决方案。以一种或另一种方式,这适用于我的代码。
问题:如何阻止 Firefox 对我放入 window.location.hash 的字符串中的空格进行 urldecoding