用localStorage做了一个简单的记事本,在IE上进行测试时报错了。明明官方说从IE8+就已经支持localStorage,可是我用IE11依然给我报了 【 SCRIPT5007: 无法获取未定义或 null 引用的属性“getItem” 】。
一开始以为是兼容问题,查询了很多兼容方法,试了都不行,后来就发现了几个坑。
首先,需要把保护模式关闭:工具 —— Internect选项 —— 安全 —— (关闭)启用保护模式 —— 确认。
关闭这个后发现还是不行,然后又get到 !!! 在IE、Firefox测试的时候需要把文件上传到服务器上(或者localhost),直接点开本地的HTML文件,是不行的 !!!。
然后我就打算部署到IIS上。
打开控制面板,选择【 程序和功能 —— 启动或关闭Windows功能 —— 勾选 Internet Explorer 11 、 Internet Information Services 、 Internet Information Services 可承载的Web核心 —— 确定 】,然后电脑就会自动下载需要的程序。
在控制面板选择 管理工具 即可看到 IIS
点进IIS,再右键选择【 添加网络 —— 填写相关信息(这里端口我设为5000) 】
然后就可以在这里看到刚才添加的网络了
接着就可以用 http://localhost:5000/index.html 打开我的文件了
这时候IE可以实现localStorage了。
以上是在IE下测试代码的一个大坑,其他具体的兼容方法等我捋清楚了再记录。