【JavaScript】localStorageを使う時にかませたい2つの判定


便利な便利なlocalStorage
スクリーンショット 2015-10-06 0.28.42

セッションを閉じてもデータを保存し続けられるLocalStorage。
今や便利な技術として様々なところで使われております。
上記の画像は皆大好きtwitterがlocalStorageにぶち込んでいたデータの一覧になります。

今では有名なウェブサービスではかなりの頻度で見かける程便利なlocalStorageですが、こいつを使う時にかませてあげたい判定がいくつかあります!

なので今日はそいつについて備忘録っていうことでメモを残したいと思います。



宿敵IE

function lsCheck(){
	try{
		if(typeof localStorage == 'undefined'){
			return false;
		}else if(window.localStorage){
			//detect IE10 and private mode
		}
	}catch(e){
		return false;
	}
	return true;
}

僕はlocalStorageを使う時はこんな感じの判定をかませてあげています!

と、言うのもそもそもWebStorageに対応していないブラウザが存在するからって言うのと特殊な仕様でlocalStorageへのアクセスを拒否されることがあるからですッ!

例えばIE6とかの古い化石のようなブラウザでは勿論localStorageなんて技術は使えないわけですが、世の中には一定数古いものを大切に使い続けている人も居ます。そういった方のブラウザでlocalStorageを遠慮なくぶちかますと、そこでエラーが発生してその後のjsが読み込まれないなんて事故に繋がるわけでして。

判定大事です。

次にIE10やプライベートブラウジング中のブラウザへの対策も大切です。こいつらはlocalStorage自体は使える癖にaccess deniedと言う生意気なエラーを吐いて来ます。なのでlocalStorageに対応しているくせにユーザーの一存でlocalStorageの利用を中止しているケースにはtry-catchでしっかりとエラーを掬ってあげる必要があります。


まとめ
ってな感じで、どれだけ便利なものにも当然落とし穴は存在するのでしっかりと対策をしておきましょう!

ちなみに上記の判定。
localStorageが使える場合にはtrueが変えるのでif(lsCheck()){alert(“hogehoge”);}なんて感じで書いてあげると素敵な動作をすると思います!


最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。


コメントを残す