2012-02-15 15 views
0

私はdatatables JQueryプラグインを使用しています。私はAJAXとページネーション(サーバー側)でそれを使用します。各行には、そのレコードの詳細ビューへのリンクが含まれています。そのリンクをクリックしてから戻るボタンを押すと、前のページに戻ります。 (注:データテーブル自身の状態保存は使用できません)。Javascriptの変更URLパラメータを履歴に挿入する前に

これは、履歴に挿入される前に現在のURLにurlパラメータを追加できる場合に達成できます。

これはできますか?純粋なJSまたはJQueryは本当に重要ではありません。

(注:私はあなたが私の問題への適用例を提供してくださいすることをお勧めしますので、もしこのために#を使用して読んませんが、決してそれを行っている、スタッフのこの種を行う、非常に新しいです)

EDIT:

jQueryプラグインのバーベキュー (http://benalman.com/projects/jquery-bbq-plugin/)のための非常に基本的なガイドは、URLを仮定

は、#1、A = 2 & B =テストのハッシュを持っている、あなたは、次の値で値を取得できます。

//true = optional converts 2 to an integer, false to boolean,... 
var a = $.bbq.getState('a',true); 

、変更/で値を追加することができます。

var hash = "a=3&b=hello"; 
$.bbq.pushState(hash); 

pushStateは、それがバインドされている場合にはなhashchangeイベントを発生させます。イベントを結合するがdoucment.ready機能に次のよう:

// called when # part of URL is modified 
$(window).bind('hashchange', function(event) { 
    var hash = event.fragment; // full hash as string 
    var a = event.getState('a', true); // value for a 
    // here do meaningful action like an AJAX request using the hash parameters  
}); 

答えて

5

はい、HTML5 History APIはあなただけでそれを行うことができます。 MDNのManipulating the Browser Historyの記事をご覧ください。

var newURL = location.href + (location.search ? "&" : "?") + "myParameter=myValue"; 
history.replaceState({}, '', newURL); 

履歴APIは、HTML5の機能と、残念ながらnot supported on all browsers次のとおりです。ここで

は、現在のURLにパラメータを追加し、現在の履歴エントリを置き換える例です。ただし、history.jsという名前のポリフィルがあり、すべてのブラウザをサポートすると主張しています。

UPDATE:

の代わりに、あなたは、おそらく既存のソリューションとjQueryのプラグインを見てみたいと思うあなた自身のAJAX履歴の実装を転がり。例を見てください。 What is the best back button jQuery plugin?の質問に対する回答です

+0

私の投票がありました。 – daniyel

+0

thx。私は漠然とHTML5の歴史APIについて聞いたことがあるが、悲しいことに、アプリケーションはIE 8で実行しなければならず、あなたのリンクによればIE 8はサポートされていない。私はhttp://benalman.com/projects/jquery-bbq-plugin/にリンクしました –

関連する問題