こんにちは。そろそろppBlogにもlocalStorageGに対応したスクリプトを組み込もうかと思っていますが、IE8で空(から)の値を入れるとブラウザがクラッシュして終了する現象に遭いました。MacBook Pro上のVMware Fusionに入れたWindows7 RC版IE8で発生します。正規版だとOKなのかなぁ。
簡単なデモを用意しました(IE8ならクラッシュしても良い状態でアクセス)。→http://p2b.jp/demo/localStorage.html
Firefox3.5では値が空でもエラーも何も起きませんが、IE8では即座にクラッシュです。そのスクリーンショットをば。適当なキーを設定して(例えば「foo」)、値を何も設定せずに「追加」ボタンを押すと発生。
上記ページのスクリプトはごくシンプルなもの。
if(typeof localStorage != "object"){ if(typeof globalStorage == "object"){ // Firefox2 possible localStorage = globalStorage[location.hostname]; } else alert("お使いのブラウザはこのスクリプトに対応していません。"); } function addItem(){ var key = document.getElementById("key").value; var value = document.getElementById("value").value; window.localStorage[key] = value; }
空の値かどうかチェックすれば済む話ですが。
関連エントリー(解決編?)
■http://p2b.jp/200912-localStorage-crashes-IE8-with-empty-value-part2
1. BENIT — 2009/12/16@22:32:41
更新したいなぁしたいなぁ、と思いつつ、テーマのCSS修正に時間がとれず、なかなか最新版にできていない状況です。。。
さて、エントリの内容ですが、正式版のIE8でもばっちり落ちました。Vista 64bit上になります。
ただ、クラッシュリカバリの機能がすぐに働いてすべて元に戻り、大事に至らないようになったのはちょっと驚きましたが(笑