0

ページをロードし、localstorageを使用してパラメータをグローバルに保存するためにpageinitを使用しています

 $('#testpage').live('pageinit',function(event){
      getsList();
    });

戻るボタンを押すと、コードはここにあります

function backToTest() {
    $.mobile.changePage('#testpage', {
        transition : "pop",
        reverse : false,
        changeHash : false
    });
}

いくつかの質問:

  • 複数ページのナビゲーションでは機能しません。

  • ローカルストレージがこの概念に適しているかどうか。

  • そして、ローカル変数をAjaxに渡して、RestWebサービスにアクセスします。
4

1 に答える 1

3

まず、私の他の答えを見てください。

そこには、次の章があります。ページ遷移間のデータ/パラメーター操作、実際のjsFiddleの例もあります。

これは簡単な概要です:

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

参照: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);
});

This will only work on multi html page format.

解決策2:解決策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/

おそらく最良の解決策ですが、iOS5.Xの一部のバージョンでは失敗します。よく知られているエラーです。

より詳しい情報

このトピックについて詳しく知りたい場合は、この記事をご覧ください。あなたは例でいくつかの解決策を見つけるでしょう。

于 2013-03-14T08:34:12.197 に答える