JavaScriptのTips 2015/03/03
関連
一定の時間が経過してからなにかの処理をするには 2013/10/04
例
setTimeout(function(){
...
}, 3000);
3000ミリ秒後に関数が呼び出される。
-> sleep
ローカルストレージ 2013/04/19
値の読み出し
localStorage.getItem(key)
値の書き出し
localStorage.setItem(key, value)
読みだそうとして、まだそのキーが存在しない場合は null
を返す。
key
の部分には、文字列や配列なども使える模様(本当?)。
value
の部分には本来は文字列だけでなく配列なども使える規格らしいが、現状のほとんどのブラウザでは文字列しかサポートされていないようで、文字列以外を与えても勝手に文字列に変換されてしまう。なので、以下のようにするとよい。
値の読み出し
JSON.parse(localStorage.getItem(key))
値の書き出し
localStorage.setItem(key, JSON.stringify(value))
getItem
が null
を返した場合は、JSON.parse
も null
を返す。
特定のキーを削除するには
localStorage.removeItem(key)
キーをすべて削除するには
localStorage.clear()
容量制限 2013/04/16
ブラウザごとに容量の制限が決まっていて、それを超えて保存しようとすると、
setItem
の呼び出しで QuotaExceededError
例外が発生する(Chromeで確認したが、他のブラウザでは未確認)。
入力ボックス(input)をクリックしたときにデフォルトでテキストが全選択状態になるようにするには 2013/04/18
HTMLであればonclickに以下のように書いておく。
<input ... onclick="this.select();">
CoffeeScriptなら以下のように書いておく。
$('#...').click ->
this.select()
他のページに遷移する前に特定の処理をするには 2013/04/18
window.onbeforeunload = function(event){
console.log("onbeforeunload");
event = event || window.event;
return event.returnValue = '別のページを移動しちゃおうとしてます。';
}
最後の行は、ページに遷移する前に確認画面を出して取り消せるようにしたい場合に必要。
event.returnValue
にメッセージを入れないといけないブラウザと、戻り値でメッセージを文字列で返さないといけないブラウザがあるために、こういう書き方をしている。