2

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

从代码:

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

这会在它应该是“未定义”时发出警报[object IDBFactory]

有没有办法解决这个问题,或者 IE10 永远不会允许本地文件使用 indexedDB?

4

3 回答 3

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

这将在以下目录中创建一个网络服务器,将当前目录中的所有文件作为静态文件提供,因此您可以轻松地访问您的 HTML 文件,而无需创建路由或任何东西。

于 2013-04-29T23:32:27.213 回答
0

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

当我尝试时,我得到了错误

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

真可惜。如果 Node.js 不是一个选项,还有 IIS Express。7.5 一直工作到 Windows XP,甚至可以配置为用完 XCOPY 部署。

便携式 IIS Express 说明

于 2013-06-05T00:06:48.257 回答
0

我很高兴 IE11 会发出数百个这样的警告,而且我什至没有以任何形式使用 Indexed DB,它只是 Microsoft IE11 调试器出于某种原因在床上。

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

当我休息时开始向下滚动控制台并开始想查看局部变量以查看是什么。

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

于 2018-06-22T22:28:27.950 回答