以下代码在IE9中为我提供了SCRIPT5009: 'Storage' is undefined
。它适用于Chrome,Safari,Firefox。
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
udpate 我正在从Apache服务器提供页面,而不是从本地文件系统访问它,因此以下内容不适用:
localStorage object is undefined in IE
local storage in IE9 fails when the website is accessed directly from the file system
更新2 发现问题,请参阅我的回答。
答案 0 :(得分:1)
发现问题。我必须指定DOCTYPE <!DOCTYPE html>
即使其他浏览器不关心IE。
感谢@Rocket Hazmat指出它。
如果没有DOCTYPE,IE将进入Quirks模式。使用DOCTYPE,IE将进入标准模式。我的猜测是IE需要处于标准模式才能访问HTML5功能。
答案 1 :(得分:0)
猜猜......
IE 9在本地文件系统上运行时似乎不支持localStorage:local storage in IE9 fails when the website is accessed directly from the file system
因此,您可以在外部服务器上运行它 - 或者检查脚本是否支持它:
if ("localStorage" in window && window["localStorage"] != null) {
// Local storage supported
}