IE10中的本地文件可以使用IndexedDB吗?

时间:2013-04-29 19:56:41

标签: javascript html5 local-storage internet-explorer-10 indexeddb

我正在尝试编写一个可以在没有互联网的情况下在本地运行并在本地文件系统上存储信息并在浏览器中运行的Web应用程序。我的代码适用于Chrome和Firefox,但在IE10中,我收到window.indexedDB未定义的错误

来自代码:

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
alert( window.indexedDB );

当它应为[object IDBFactory]时,会发出“未定义”警告。

有没有解决方法或IE10永远不允许本地文件使用indexedDB?

3 个答案:

答案 0 :(得分:4)

IndexedDB实例绑定到本地文件不支持的域。至少这是IndexedDB规范所暗示的隐含的,但它并没有明确说明。

某些浏览器(Chrome / Firefox)确实为本地文件实现了它,但这可能与处理本地文件的“域”的方式有关,这可能与IE不同。

我解决这个问题的方法是使用node.js和express.js来提供文件(这也意味着你可以避免IE安全策略警告),所以我所做的就是:

npm install express

然后使用以下文件作为我的JS(保存为app.js):

var express = require('express');
var app = express();

app.use(express.static(__dirname));

app.listen(3000);

最后运行它:

node app.js

这将在以下目录中创建一个Web服务器,将当前目录中的所有文件作为静态文件提供,这样您就可以轻松点击HTML文件而无需创建路由或任何内容。

答案 1 :(得分:0)

如果您打开从文件系统加载的HTML文档的IE开发控制台,您可以尝试从控制台加载indexedDB。

当我尝试时,我收到错误

  

DOM7005:索引数据库仅适用于具有http或https URL方案的网站。

无赖。如果Node.js不是一个选项,那么还有IIS Express。 7.5可以一直运行到Windows XP,甚至可以配置为用完XCOPY部署。

Portable IIS Express instructions

答案 2 :(得分:0)

我很高兴IE11发出数百条警告,而且我什至不使用任何形式的Indexed DB,它只是Microsoft IE11调试器出于某种原因而被破坏。

“ DOM7005:索引数据库仅在具有http或https URL方案的网站上可用。”

当我休息时开始向下滚动控制台,并开始想要查看局部变量以查看结果。

我要加载的是一个本地文件系统SVG图形,其中嵌入了javascript(ecmascript),用于检查,操作和返回基于SVG文档DOM的信息。