web-dev-qa-db-ja.com

ブラウザで、SafariのプライベートブラウジングのsessionStorageがChromeのシークレットモードやFirefoxのプライベートウィンドウと同じように機能しませんか?

sessionStorageの場合、ChromeのシークレットモードとSafariのプライベートブラウジングおよびFirefoxのプライベートウィンドウで動作が異なるようです。 http://www.webdirections.org/blog/webstorage-persistent-client-side-data-storage/ で何かを見つけることができますが、Safariのプライベートブラウジングが例外をスローするとは言いません。

以下は、「プライベートブラウジング」を開いた方法です。

  1. MacのSafariでは、メニューバーの[Safari-> Private Browsing]をクリックします
  2. Chromeでは、「ファイル->新しいシークレットウィンドウ」を使用します
  3. Firefoxでは、「ファイル->新しいプライベートウィンドウ」を使用します

safariでは、sessionStorageが機能せず、コンソールで次の操作を行うと:

> sessionStorage["foo"] = 123.4
Error: QUOTA_EXCEEDED_ERR: DOM Exception 22

> sessionStorage["foo"] 
undefined

ただし、ChromeまたはFirefoxの場合、sessionStorageは通常どおり機能します(非プライベートブラウジングとして)。sessionStorageに関する限り、上記は正確ですか?

22

あなたの評価は実質的に正確です:

  • Safariはプライベートモードで0のクォータを使用するだけなので、値を設定しようとすると失敗します。 spec によると、これは問題ありません。仕様では最小スペース要件が義務付けられていないためです。
  • ChromeおよびFirefoxでは引き続きストレージを使用できますが、プライベートストレージは非プライベートから独立しています。つまり、プライベートモードでアイテムを設定しても、非プライベートモードに反映されません(localStorageのみに重要)。

クォータを超えた場合、他のブラウザでもQuotaExceededError例外をいつでもスローできることに注意してください。

27
nmaier

Safariの最新バージョン(バージョン12.0)は、シークレットモードで問題なくsessionStorageに既にアクセスしています。 enter image description here

2
Ezeewei

Safari Pivateモードは、localstorageとSessionStorageをサポートしています。

enter image description here

1
Kumar Nitesh