2012-03-11 8 views
7

私のjquerymobileアプリケーションでは、localStorageとsessionstorageなどを使用する必要があります。私はcookieをサポートしていないユーザーにプロンプ​​トを表示していますが、Cookieを有効にするように指示していますが、動作していない、彼らはまだ間違った画面が表示されますが、私はユーザーがプライベートブラウジングが有効になっている場合、どのようにテストできるか知っていますか?「プライベートブラウジング」を有効にしてiPhoneでユーザーを検出するにはどうすればよいですか?

おかげ

+0

私は、ユーザーがこのモードにあるとき – Baconbeastnz

+0

トライキャッチで、それがスロー特定のエラーがどのような場合でも、アプリのバグ、のlocalStorageエントリを作成しようとすると? – levi

+0

それはエラーを投げていない、それは静かに失敗する! – Baconbeastnz

答えて

10

私はこれを上のテストには、iPhoneを持っていますが、(プライベートモード中)デスクトップのSafariブラウザで以下の機能を実行すると、エラーをキャッチし、予想されるとして、それを処理しないでください。

function storageEnabled() { 
    try { 
     localStorage.setItem("__test", "data"); 
    } catch (e) { 
     if (/QUOTA_?EXCEEDED/i.test(e.name)) { 
      return false; 
     } 
    } 
    return true; 
} 

if (!storageEnabled()) alert('localStorage not enabled'); 

Jsfiddle:http://jsfiddle.net/B9eZ5/

+0

誰かがこれを使うことを決めた場合、IOS 7.0.3は名前のために 'QUOTAEXCEEDEDERROR'を報告しています。 – Ceres

+7

私は、キャッチブロック内のエラー名のチェックをスキップすることをお勧めします。 - localStorage.setItemが何らかの例外をスローした場合、この関数はおそらくfalseを返すべきです。 – bmode

関連する問題