2

現在、Jquery Mobile で作成されたページがあり、ページのコンテンツは this などの URL id に基づいて形成されますhttp://domainname/page?id=2beforepageshowコンテンツを取得する方法は、この jquery ステートメントを使用して、ページ イベントが発生したときの ajax リクエスト$(document).on( "pagebeforeshow", "#player", function( e )です。これはうまくいきますが、ページから離れてもこのコンテンツを保持する方法を知りたいです。

たとえば、戻る場合はリストに移動する必要がありますが、ボタンを押すとプレーヤー ページに戻り、ページ上の ajax リクエストから取得したすべてのコンテンツと適切な URL が表示されます。これはどのように行うことができますか?

4

1 に答える 1

1

これを実現する方法はいくつかあります。データを保存するか、ページ遷移中に移動する必要があります。考えられる解決策は次のとおりです。

ページ遷移間のデータ/パラメータ保存

ページ遷移中に、あるページから別のページにパラメーターを送信することができます。それはいくつかの方法で行うことができます。

参考:https ://stackoverflow.com/a/13932240/1848600

解決策 1:

changePage で値を渡すことができます。

$.mobile.changePage('page2.html', { dataUrl : "page2.html?paremeter=123", data : { 'paremeter' : '123' }, reloadPage : true, changeHash : true });

そして、次のように読みます。

$("#index").live('pagebeforeshow', function () {
    var parameters = $(this).data("url").split("?")[1];;
    parameter = parameters.replace("parameter=","");  
    alert(parameter);
});

これは、複数の html ページ形式でのみ機能します。

解決策 2:

または、ストレージ用に永続的な JavaScript オブジェクトを作成することもできます。ページの読み込みに ajax が使用されている限り (そしてページが再読み込みされない限り)、そのオブジェクトはアクティブなままです。

var storeObject = {
    firstname : '',
    lastname : ''
}

例: http://jsfiddle.net/Gajotres/9KKbx/

解決策 3:

次のように、前のページからデータにアクセスすることもできます。

$('#index').live('pagebeforeshow', function (e, data) {
    alert(data.prevPage.attr('id'));
});   

prevPageオブジェクトは完全な前のページを保持します。

解決策 4:

最後の解決策として、localStorage の気の利いた HTML 実装があります。HTML5 ブラウザー (Android および iOS ブラウザーを含む) でのみ機能しますが、保存されたすべてのデータはページの更新によって永続化されます。

if(typeof(Storage)!=="undefined") {
    localStorage.firstname="Dragan";
    localStorage.lastname="Gaic";            
}

例: http://jsfiddle.net/Gajotres/J9NTr/

ここで言及されていることはすべて、私の他のARTICLEまたはHEREで見つけることができます。次の章を検索してください:ページ遷移間のデータ/パラメータの保存

于 2013-03-28T19:02:24.137 に答える