4

我正在尝试在https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB上运行“使用 IndexedDB”示例代码

走出大门,我偶然发现了第一行代码: window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;

使用 Firebug,我看到window.indexedDBFF 15 未定义预期,window.webkitIndexedDB 未按预期定义(FF 不是 webkit),但window.mozIndexedDB为空但未定义。如果它为 null,则告诉我它存在但没有有效值/未初始化。

这适用于 OSX 10.6.8 和 Ubuntu 12.04 上的 Firefox 15.0.1。有人能告诉我为什么我看不到/使用window.mozIndexedDB吗?难道我做错了什么?

为了完整起见,这是我的 JavaScript 文件:

window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;

var request = window.indexedDB.open("MyTestDatabase", 3);
var db;

request.onerror = function (event) {
    alert("Oops, request.onerror");
};

request.onsuccess = function (event) {
    // Do something with request.result!
    alert("Made it to request.onsuccess");

    db = request.result;
};

// This event is only implemented in recent browsers
request.onupgradeneeded = function (event) {
    alert("Made it to request.onupgradeneeded");
};

db.onerror = function (event) {
    alert("Database error (db.onerror): " + event.target.errorCode);
};
4

1 回答 1

0

我最初的 HTML5 应用程序使用 jQuery Mobile 和 REST WS。在开发中,我会直接从文件系统运行它,它工作正常。为了与同事分享,我让它在 Apache httpd 后面运行。

在添加 IndexedDB 时,我试图通过浏览器查看文件系统中的文件来进行测试。它不起作用,这就是导致我回到第一方并尝试运行来自 Mozilla 的示例代码的原因。

看起来 IndexedDB 需要一个域,即使它是本地主机。我只是将我的代码放在 public_html 下并通过 httpd/localhost 查看它,它运行良好。

于 2012-10-08T12:15:08.950 回答