0

index.php というファイルがあります。スクリプト タグを使用して、index.js を参照します。

payment.php というファイルもあります。スクリプト タグを使用して、payment.js を参照します。

index.js で seatSelected という変数を設定し、それを payment.js で使用する必要があります。ただし、支払い.phpでindex.jsを参照したくありません。

globals.js というファイルを作成しようとしました。index.php で参照してから、index.js に次の内容を含めます。

var selectedSeat;

function setSelectedSeat(seat){
    selectedSeat = seat;
}

function getSelectedSeat(){
    return selectedSeat;
}

そして、次のように index.js で値を設定します。

setSelectedSeat("test");

payment.js でそれを受け取る (payment.js の上の payment.php で globals.ks を参照する):

alert(getSelectedSeat());

しかし、「未定義」と警告します。私は何か間違ったことをしていますか?変更されたファイルを参照せずに、この変数を参照するにはどうすればよいですか?

4

2 に答える 2

1

あるページから別のページへの遷移中に変数の状態を保持しようとしており、アプリケーションにセッションの有効期限が必要なデータがあるようです。使用することをお勧めしますsessionstorage。ポリフィルの助けを借りて、ブラウザsessionstorageまでサポートを提供できますIE6

SessionStorage使い回しのメリットLocalStorage

  • セッション ストレージは、特定のタブ/ウィンドウのデータのみを保持し、タブ/ウィンドウを閉じるとデータが失われます。
  • データは自動的に期限切れになるため、セッションの期限切れについて心配する必要はありません。
  • セッションを期限切れにすることもできます。
  • ページを更新してもデータは保持されます。

ただし、文字列パターンsessionstorageしか保存できないことを忘れないでください。andメソッドを使用して、複雑なオブジェクトをブラウザのメモリに格納するkey-value必要があります。JSON.stringifyJSON.parse

サポートされていないブラウザーでセッションストレージのサポートを提供するために使用できるポリフィルのリストをここで見つけることができます: https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#web-storage-localstorage -and-sessionstorage

sessionstorageまた、次の記事を読んで理解を深めることもできますlocalstorage: http://diveintohtml5.info/storage.html

于 2013-07-03T19:08:49.353 に答える
1

別のページから作成された変数にはアクセスできません。

フォールバックとしてlocalStorage使用できます。cookies

function setSelectedSeat(seat){
    if(localStorage) {
      localStorage['selectedSeat'] = JSON.stringify(seat);
    }
    else {
      //add code to store seat in cookie
    }
}

function getSelectedSeat(){
    if(localStorage) {
      return JSON.parse(localStorage['selectedSeat']);
    }
    else {
      //add code to retrive seat in cookie
    }
}
于 2013-07-03T18:53:53.223 に答える