正確には QUOTA_EXCEEDED_ERR 例外が発生する。
とりあえず以下のような関数を作って、判定すればよいのではないかと。
※ 9/8 コメントを受けて、コードを一部修正。
function isLocalStorageSupported() {
if (!window.sessionStorage) return false;
var testKey = 'test';
try {
window.sessionStorage.setItem(testKey, '1');
window.sessionStorage.removeItem(testKey);
return true;
} catch (error) {
return false;
}
}