3
我試圖用url編碼標籤推送一個URL(我正在構建一個Twitter客戶端)。 History.js顯然將URI編碼的主題標籤(%23)視爲URL中的散列參數,以便自動URL對它們進行解碼,因此不會觸發這些鏈接的狀態更改。通過PushState自動解碼url內的URI編碼標籤
例如,URL /首/%23秒被轉換爲/第一/第二#
我可以做什麼不搞亂整個插件?
我試圖用url編碼標籤推送一個URL(我正在構建一個Twitter客戶端)。 History.js顯然將URI編碼的主題標籤(%23)視爲URL中的散列參數,以便自動URL對它們進行解碼,因此不會觸發這些鏈接的狀態更改。通過PushState自動解碼url內的URI編碼標籤
例如,URL /首/%23秒被轉換爲/第一/第二#
我可以做什麼不搞亂整個插件?
如果託管History.js本地文件,看看裏面的M對象上的功能叫做「unescapeString」(或只是按Ctrl + F到「m.unescapeString」。
然後,您可以將其更改爲這樣的:
m.unescapeString=function(b){
var c=b,d;
if(!history.pushState){ //Adding this check.
for(;;) {
d = a.unescape(c);
if (d===c)
break;
c = d;
}
}
return c
}
這將基本上解決您的問題(我相信,這種方法用於支持不支持history.pushState瀏覽器)
。