2

2つのjQueryMobileページ間でusernameのような変数を渡すにはどうすればよいですか?

または、そのことについては2つの通常のページで、変数をグローバルとして持つことは機能しません。次のインクルードで変数がnullに戻されるためです。

2つのHTMLページ間で変数をグローバル変数に渡すにはどうすればよいですか?

4

4 に答える 4

6

私は通常ローカルストレージを使用しますが、オブジェクトも保存できます。元:

var userInfo = {
            "username": "Bob",
            "roleName": "Admin",
            "image": "img/userPic.jpg",
        };

        //Store the object in local storage
        localStorage.setItem('loggedUser', JSON.stringify(userInfo));

次に、他のページで簡単に行うことができます。

var userInfo = JSON.parse(localStorage.getItem("loggedUser"));
var userName = userInfo.username;
于 2012-05-24T15:40:57.147 に答える
1

2つのページ間のハイパーリンクでajaxを無効にしている限り、クエリ文字列で渡すことができます。

<a href="nextPage.php?username=joe" data-ajax="false">Next page</a>

jQueryモバイルトランジションの有益な機能を見逃していますが、少なくともページ間で変数を正常に渡すことができます。

アップデート:

ドキュメントから:

ページ間でのパラメータの受け渡し

jQuery Mobileは、内部/埋め込みページへのクエリパラメータの受け渡しをサポートしていません。

その後、ドキュメントは私が試したことのない2つのプラグインを提案します。ページパラメータプラグインjqueryモバイルルーティングプラグイン

パラメータの受け渡しが機能しない理由については、上記のリンク先のドキュメントページを確認してください。ただし、ハッシュなしでページを読み込む場合(ajaxの動作を無効にすることにより)、少なくとも私の経験では問題ありません。

于 2012-05-24T14:08:06.080 に答える
1

クエリ文字列またはクライアント側ルーティングを介してURLを使用するか、localStorageを使用するか(同じドメイン上にあると想定)、Cookieを使用できます。

クライアント側のルーティングを使用する場合は、さまざまなJQMページイベントと連携するJQM専用のプラグインがあります。

https://github.com/azicchetti/jquerymobile-router

于 2012-05-24T14:08:08.117 に答える
0

JQMが独自の構成を保存するのと同じ方法で、グローバルに使用する変数を保存できます。$.mobileの下の'mobileinit'に独自のjavascriptオブジェクトを作成し、それをグローバル変数に使用するだけです。

    <!DOCTYPE html> 
    <html>
    <head>

        ...

        <script> // position before jquery.mobile.js is important for 'mobileinit' to fire
            $( document ).on( "mobileinit", function( event ) {

                //create global variable storage
                $.mobile.YourApplicationNameHere = {};

                //use it like this anywhere in your code:
                $.mobile.YourApplicationNameHere.globalVar1 = 1;
                $.mobile.YourApplicationNameHere.globalVar2 = 2;
                console.log("globalVar1 = " + $.mobile.YourApplicationNameHere.globalVar1);

            });
        </script>

        <script src="jquery/jquery.mobile-1.4.5.min.js"></script>

        ...

    </head>
        ...
    </html>

グローバル変数はどこでも初期化できますが、「mobileinit」はJQMの最も初期の初期化ポイントです。

于 2015-03-28T12:11:15.290 に答える