0

我在 Firefox 版本 14-16 中打开没有 HTTP 协议的文件。

我无法打开indexdb. 我的语法是这样的:

window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
var request = window.indexedDB.open(dbname, dbversion);
request.onsuccess = function (evt) {
    alert('Success')
};

使用 Firebug,我可以window.mozIndexedDB看到null.

在 localhost 中它工作正常,但我需要在没有 HTTP 的情况下运行。

是否需要对我的代码进行任何更改?

4

1 回答 1

1

在“安全”季节的文件协议上禁用了很多东西。我试图在 Mozilla 网站上找到原因,但他们在 MDN 上没有提到任何关于限制的地方。但是如果你去黑暗的一面,微软会提到限制。

来自微软的网站

注意以下代码示例需要支持文件 API 和索引数据库 API 的浏览器,例如 Internet Explorer 10 或更高版本。此外,每个示例都有一个关联的“实时链接”,它链接到工作代码示例(使用 http 协议)。出于安全原因,索引数据库 API 仅通过 Windows Internet Explorer 中的 http、https、ms-wwa 或 ms-wwa-web 协议工作。也就是说, Internet Explorer 不允许本地 HTML 页面 (file://) 完全执行索引数据库 API。相反,该页面必须使用受支持的协议,例如 http:// 或 https://。如果方便,可以使用本地 Web 服务器使用环回地址 (127.0.0.1) 预览 IndexedDB 页面。

于 2012-10-29T11:21:31.047 回答