我正在尝试编写一个可以在没有互联网的情况下在本地运行并在本地文件系统上存储信息并在浏览器中运行的Web应用程序 . 我的代码适用于Chrome和Firefox,但在IE10中,我收到的错误是 window.indexedDB
未定义
从代码:
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
alert( window.indexedDB );
当它应该是 [object IDBFactory]
时,它会发出警报"undefined" .
有没有办法绕过这个或IE10永远不会允许本地文件使用indexedDB?
3 回答
IndexedDB实例绑定到本地文件不支持的域 . 至少这是IndexedDB规范暗示的内容,但它没有明确说明 .
有些浏览器(Chrome / Firefox)会为本地文件实现它,但这可能与处理本地文件的“域”的方式有关,这可能与IE不同 .
我解决这个问题的方法是使用node.js和express.js来提供文件(这也意味着你可以避免IE安全策略警告),所以我所做的就是:
然后使用以下文件作为我的JS(保存为
app.js
):最后运行它:
这将在以下目录中创建一个Web服务器,将当前目录中的所有文件作为静态文件提供,这样您就可以轻松点击HTML文件而无需创建路由或任何内容 .
如果为从文件系统加载的HTML文档打开IE开发控制台,则可以尝试从控制台加载indexedDB .
当我尝试时,我得到了错误
游民 . 如果Node.js不是一个选项,那么还有IIS Express . 7.5可以一直运行到Windows XP,甚至可以配置为用完XCOPY部署 .
Portable IIS Express instructions
我很高兴IE11喷出了数百个这样的警告,我甚至没有使用任何形式的索引数据库,它只是因为某种原因微软的IE11调试器 .
“DOM7005:索引数据库仅适用于具有http或https URL方案的网站 . ”
当我休息时开始向下滚动控制台并开始想要查看局部变量以查看什么是什么 .
我正在加载的是一个本地文件系统SVG图形,它嵌入了javascript(ecmascript)来检查,操作和返回基于SVG文档DOM的信息 .