我正在尝试在https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB
上运行“使用IndexedDB”示例代码刚出门,我偶然发现了第一行代码:
window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;
使用Firebug我看到window.indexedDB
未定义为FF 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);
};
答案 0 :(得分:0)
我原来的HTML5应用程序使用jQuery Mobile& REST WS。在开发中,我会直接从文件系统运行它,它工作正常。为了与同事共享,我将它运行在Apache httpd。
之后在添加IndexedDB时,我试图通过浏览器查看文件系统中的文件进行测试。它没有用,这就是让我回到原点并尝试运行Mozilla的示例代码的原因。
看起来IndexedDB需要一个域,即使它是localhost。我只是将我的代码放在public_html下并通过httpd / localhost查看它并且它运行良好。