目標: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 でハッシュを正しく読み取るための解決策がたくさん見つかりました。何らかの形で、これは私のコードでうまく機能しています。
質問: window.location.hash に入力した文字列内のスペースを Firefox が URL デコードしないようにするにはどうすればよいですか?