2017-04-03 1 views
0

私はsessionStorageを使用して、アクションがセッションごとに1回だけ発生するようにしています。ただし、ユーザーが新しいウィンドウを開くと、sessionStorageは新しいウィンドウに持ち越されず、アクションが再度実行されます。以下のコードを参照してください:Javascript sessionStorageタブを越えて?

if sessionStorage.alreadyTracked != "1" 
    sessionStorage.alreadyTracked = "1" 
    ... 

すべてのタブに適用する簡単な方法はありますか?たぶん私はクッキーを使用する必要がありますか?

答えて

1

は限りHTML5のストレージが行くように私はあなたのケースでのlocalStorageのために行くだろう。

は差異については、以下を参照してください。

セッションストレージ:

  • 値はのみ限り、彼らは
    保存されているウィンドウまたはタブとして存続。
  • 値は がそれらを作成したウィンドウまたはタブ内でのみ表示されます。

ローカルストレージ:

  • 値は、ウィンドウやブラウザの寿命を持続します。
  • 値は、同じ起点で実行されているすべてのウィンドウまたはタブで共有されます。

Read more here

1

localStorageに変更します。sessionStorageは個々のタブにバインドされており、localStorageはそうではない可能性があります。

0

あなただけのFF/Chromeを標的にしてOKであれば、あなたも放送チャンネルAPI Broadcast Channel API

を見てみたいかもしれませんが(ブラウジング・コンテキスト間の単純な通信を可能につまり、ウィンドウ、タブ、フレーム、またはiframe)が同じ起点(通常は同じサイトのページ)で表示されます。

関連する問題