2011-11-07 17 views
0

私はHistory APIを使用していましたが、History.jsを実装しようとしていますが、state.dataにアクセスできないようです。私はstate.data to9の文字列を使用して、対応する関数を呼び出したい。私のコンセプトは履歴APIのためにうまく動作しますがHistory.js私のコードを以下に配置されていることはありません:History.js Issue

(function (window, undefined) { 
    var History = window.History; // Note: We are using a capital H instead of a lower h 
    if (!History.enabled) { 
     // History.js is disabled for this browser. 
     // This is because we can optionally choose to support HTML4 browsers or not. 
     return false; 
    } 

    // Bind to StateChange Event 
    History.Adapter.bind(window, 'statechange', function() { // Note: We are using statechange instead of popstate 
     var State = History.getState(); // Note: We are using History.getState() instead of event.state 
     alert(State.data); 
     if (State.data != null) { 
      var strFun = State.data; 
      alert(strFun); 
      //Create the function call from function name and parameter. 
      var mySplitResult = strFun.split(","); 
      //var strParam = "null"; 
      //Call the function and arguments 
      window[mySplitResult[0]](mySplitResult[1], mySplitResult[2]); 
     } 
    }); 
})(window); 

私のリンクのような、次のとおりです。

<li> 
    <a href="#" onclick="javascript:History.pushState({state:newarticles},'New Articles','newarticle'); return false;">Articles</a> 
</li> 
<li> 
    <a href="#" onclick="javascript:History.pushState({state:displaybookmarks},'Favourties','favourties'); return false;">Favourites</a> 
</li> 
<li> 
    <a href="#" onclick="javascript:History.pushState({state:pagenation},Listing,1,'Archive','archieve1'); return false;">Archive</a> 
</li> 

すべてのヘルプは大歓迎されます。

答えて

0

それぞれを呼び出す正しい方法は次のとおりです。onclickにjavascript:がなく、状態データが引用されていることに注意してください。

<a href="#" onclick="History.pushState({state:'newarticles'},'New Articles','newarticle'); return false;"&gt;Articles&lt;/a> 

PEte

+0

私の結果を文書化してください。 –

+0

これは、私がstate.dataに警告するとき、これはまだ動作しません。オブジェクトオブジェクトであり文字列ではありません。オブジェクトの代わりに文字列を表示するためにstate.dataを取得するにはどうすればよいですか。 –

+0

私はこれを動作させましたが、state.dataの代わりにstate.titleを使用しました。 state.dataはまだ何らかの理由でオブジェクトを保持しているようです –