IE8's default settings don't allow the use of cookies or local/session storage on pages served from the hard drive, even after you "Allow Blocked Content" to allow JavaScript execution. So when viewing C:\Documents and Settings\username\filename.html, Modernizr 1.6 will test true for localStorage or sessionStorage, but attempts to get or set storage items will result in "is null or not an object" errors because the window.localStorage/window.sessionStorage will return undefined in this case.
It's pretty easy to work around this:
tests['localstorage'] = function() {
try {
return ('localStorage' in window) && window['localStorage'] && window.localStorage !== null;
} catch(e) {
return false;
}
};
tests['sessionstorage'] = function() {
try {
return ('sessionStorage' in window) && window['sessionStorage'] && window.sessionStorage !== null;
} catch(e){
return false;
}
};
IE8下Modernizr对LocalStorage的支持
本文探讨了IE8浏览器默认设置下对LocalStorage及SessionStorage的支持问题,并提供了相应的解决方案。当从本地硬盘加载页面时,即使允许了JavaScript执行,Modernizr 1.6仍可能报告错误。文中给出了修改Modernizr测试函数的具体方法。
852

被折叠的 条评论
为什么被折叠?



