これを見たことがない、または想像できなかった。私の URL は次のようになります。
www.site.com/root/path1/path2/123/some-path-1/page.1.2.html
ある時点で URL をハッシュで更新して、動的なユーザー インタラクションが URL アドレスを反映して友人にリンクを送信するようにします。
window.location.hash = 'key=SomeValue';
SomeValue にドットが含まれている場合を除いて、ほぼすべての場合で完璧に機能します。
window.location.hash = 'key=SomeValueA.B.';
上記の URL は次のようになります。
www.site.com/root/path1/path2/123/some-path-1/key=SomeValueA.B.
www.site.com/root/path1/path2/123/some-path-1/page.1.2.html#key=SomeValueA.B の代わりに。
ここで何が問題なのか想像できず、jsfiddle で再現できません。これにはカスタム作成のハッシュ マネージャー クラスを使用します。
var hashUrlManager = function(){
var getHash = function(){
return (window.location.hash) ? window.location.hash.substring(1) : "";
};
return{
getHash : getHash,
getParam : function(k){
return Util.getParameter(k,"?"+getHash());
},
setParam : function(k,v){
var h = getHash();
var vNow = hashUrlManager.getParam(k);
if(vNow==""){
if(window.location.href.indexOf("#")==-1){
window.location.hash = k+"="+v;
}else{
window.location.hash = h+((h=="")?"":"&")+k+"="+v;
}
}else if(vNow!==v){
window.location.hash = window.location.hash.replace(k+"="+vNow,k+"="+v);
}
},
removeParam : function(k){
var v = hashUrlManager.getParam(k);
var s = k+"="+v;
if(window.location.hash.indexOf("&"+s)!=-1)s="&"+s;
window.location.hash = window.location.hash.replace(s,"");
}
};
}();
hashUrlManager.setParam('key','SomeValueA.B.');
注: それが重要な場合は History.js を使用し、ページでは jQuery を使用します。