Home > Javascript > [js] WebStorageのサポートチェック

[js] WebStorageのサポートチェック

LocalStorage や SessionStorageが使えるかどうか確認する時の条件について。

未サポート機種であればwindowにlocalStorageやsessionStorageというプロパティがないので
if(window.localStorage)みたいな条件だけでもチェック出来る。

しかしWebViewでも表示する場合、ネイティブ側で使用許可をしていないと
「サポートはしているんだけど使えない」という状況になってsetItem等を使った場合にQUOTA_EXCEEDED_ERRとなる。

WebViewで許可されていない場合はnullを返すので、その条件も含めつつ
setItemで適当な文字列を書きこんでgetItemした時に同じ文字列だったら
ストレージが使えると判断するのが確実みたいでした。

JavaScript:
  1. var hasLocalStorage = (function(){
  2.     if(('localStorage' in window) && window['localStorage'] !== null){
  3.         try {
  4.             localStorage.setItem('test', 'test');
  5.             var c = localStorage.getItem('test');
  6.             localStorage.removeItem('test');
  7.             return (c === 'test');
  8.         } catch(e) {
  9.             return false;
  10.         }
  11.     }else{
  12.         return false;
  13.     }
  14. })();

書きこみの前に都度チェックを入れる場合は、setItemの前にremoveItemを挟んでおくと
連続書きこみのエラーが回避出来ます

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://tenderfeel.xsrv.jp/javascript/1192/trackback/
Listed below are links to weblogs that reference
[js] WebStorageのサポートチェック from WebTecNote

Home > Javascript > [js] WebStorageのサポートチェック

最近の投稿
最近の修正
Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top