1

HTML:

<textarea id="edit-message"></textarea>
<button type="button" id="guest-button" class="form-submit">Send</button>

JS:

$('#guest-button').click(function() {
    if (window.sessionStorage){
        sessionStorage.setItem("gbookmsg", $('#edit-message').val())
    }
    setTimeout(function() {
        window.location.replace("http://anti-idol.org/user/login");
    }, 500);
});

$('#edit-message').val(gbookmsg);

私が達成したいのは、ユーザーがテキストエリアの入力にテキストを入力してから送信ボタンをクリックすると、テキストエリアの値がgbookmsg変数に保存されることです。次に、ユーザーがログインページにリダイレクトされると、ログインに成功した後、このフォームに戻り、javascript がgbookmsg以前に入力された入力値を挿入します。しかし、ページがリロードされると、gbookmsg変数が未定義になります。保存する方法は?ありがとう

4

4 に答える 4

3

グローバル変数のスコープは、ページがリロードされた場合に DOM が使用可能になるためのものであるため、グローバル変数によってこれを達成することはできません。値は失われます。

  1. クッキーを使用することができます

また

  1. DOM sessionStorageまたはlocalstorageを使用する

    if (window.sessionStorage){
     sessionStorage.setItem("gbookmsg ", $('#edit-message').val()) ;
    }
    

編集

を作成しfiddleました

  • 初めて実行すると、空白のアラートが表示されます

  • 値を設定し、ページをリロードします。

于 2013-05-16T14:43:53.860 に答える
1

変数を保存するために Cookie を使用します。

JQuery を使用して Cookie から値を保存および取得するのに役立つ次の記事を参照してください: http://www.sitepoint.com/eat-those-cookies-with-jquery/

于 2013-05-16T14:44:19.417 に答える
0

どのバックエンドを使用していますか? データをセッション (サーバー側) に保存するか、クエリ文字列を使用して値を次のページに渡すことができます。または、Cookie を使用して値を保存することもできます

于 2013-05-16T14:43:16.807 に答える
0

グローバル変数は、ページがリロードされると失われます。

ページより永続的なストレージには、いくつかのオプションがあります。

ローカルストレージ

localStorage は、ページのロード間で持続するオブジェクトです:

localStorage.cat = 3;
// After a page load:
alert(localStorage.cat) // will alert '3'

クッキー

document.cookie を使用して、値を記憶するブラウザ Cookie を設定できます。

リダイレクトで渡す

ログイン リダイレクトの各ステップで入力からのテキストを渡すと、ページが読み込まれたときに元に戻すことができます。

ログイン リダイレクトは次のようになります。

http://myawesomedomain.com/login?redirect=http://myawesomedomain.com/contact?message=Hi!

次に、ログイン後に次の場所にリダイレクトされます。

http://myawesomedomain.com/contact?message=Hi!

get パラメータからメッセージを引き出すことができます。

于 2013-05-16T14:43:40.047 に答える