2016-06-20 92 views
1

我發現有關會話存儲的Chrome和Firefox的區別。我不知道這是我做錯了什麼,或者如果這是他們每個人的行爲。Chrome和Firefox之間的會話存儲行爲是否有所不同?

情況:我需要會話存儲按標籤工作而不是按窗口工作。在Firefox中我得到這個結果,但不是在鉻。這裏有一個Plunker我做模擬情況:plunker

if(!($scope.fooBarKey = sessionStorage.getItem('fooBarKey'))) { 
    $scope.fooBarKey = Math.floor(Math.random() * 900000) + 100000; 
    sessionStorage.setItem('fooBarKey', $scope.fooBarKey); 
} 

謝謝您聽


觀測數據:由charlietfl

回答一個問題,如果你在Chrome 3個選項卡打開我的Plunker保存並恢復的值(對於每個選項卡)是相同的。如果你在Firefox上打開3個標籤,保存和恢復的值(對於每個標籤)是不同的

+0

請更具體地瞭解您遇到的差異。我們不應該離開現場才能全面瞭解問題 – charlietfl

+0

@charlietfl如果您在chrome上的3個選項卡中打開我的Plunker,則保存並恢復的值(對於每個選項卡)是相同的。如果你在Firefox上打開3個標籤,保存和恢復的值(對於每個標籤)是不同的。 – ThCC

+0

你的期望是什麼?請注意,您的「if」正在使用無效的比較。一點也不確定此代碼預計要做什麼 – charlietfl

回答

0

經過一些研究並詢問一些智者在工作中的幫助後,我開始明白我做錯了什麼。

事實上,每個chrome會話都有自己的sessionStorage。問題是我複製標籤而不是打開新標籤。複製選項卡的chrome使用window.open並生成一個女兒選項卡,該選項卡共享來自其父級的所有信息,包括sessionStorage。

相關問題