2012-03-13 54 views
3

我試圖用url編碼標籤推送一個URL(我正在構建一個Twitter客戶端)。 History.js顯然將URI編碼的主題標籤(%23)視爲URL中的散列參數,以便自動URL對它們進行解碼,因此不會觸發這些鏈接的狀態更改。通過PushState自動解碼url內的URI編碼標籤

例如,URL /首/%23秒被轉換爲/第一/第二#

我可以做什麼不搞亂整個插件?

回答

6

如果託管History.js本地文件,看看裏面的M對象上的功能叫做「unes​​capeString」(或只是按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瀏覽器)