2012-03-13 11 views
3

URLエンコードされたハッシュタグを使用してURLをプッシュしようとしています(私はTwitterクライアントを構築しています)。 History.jsは、URIエンコードされたハッシュタグ(%23)をURLのハッシュパラメータとみなし、自動的にURLをデコードして、そのようなリンクの状態変化を引き起こさないようにしています。 URL内のエンコードされたハッシュタグがPushStateによって自動的にデコードされます

は、例えば、URL /最初/%の23secondは最初/ /#秒として変換されます

私は全体のプラグインをめちゃくちゃにせずに何ができますか?

答えて

6

あなたは「m.unescapeString」に「unescapeString」(または単にCtrlキー+ Fと呼ばれるm個のオブジェクト上の機能のために内部に見て、ローカルファイルHistory.jsをホストしている場合。

あなたは、その後にそれを変更することができますこの:

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をサポートしていないブラウザをサポートするために使用されていることを信じている)