2

ブラウザを使用してユーザーと対話するアプリケーションを開発したいと考えています。アプリケーションはオフラインで利用でき、zip 経由で配布可能です。

私が実行したい機能は、HTML、CSS、JS によって処理され、IndexedDB 機能を利用したいと考えています。

同じコードがオンライン スペースでは機能するが、ローカル ハード ドライブの場所 (file://) からは機能しないという点で、IndexedDB (Chrome) で問題が発生しました。

例を参照してください: http://jsfiddle.net/FwuUD/

(function() {

    var db;
    var dbreq = indexedDB.open("TestApp", 2);

    dbreq.onsuccess = function(e) {
        alert("Database created");
        db = e.target.result;

        var employeeStore = db.createObjectStore (
            "employees",
            {keyPath: "id"}
        );

    };

    dbreq.onerror = function(e) {
        alert("Database Error: " + e.target.errorCode);
    };

    dbreq.onupgradeneeded = function(e) {
        alert("Database upgrade needed");
    };

})();

助言がありますか?

4

3 に答える 3

2

indexedDB API は Web サーバー内でのみ機能します。ファイルシステムを使用して移動すると、機能しません。indexedDB API が動作するにはドメイン コンテキストが必要ですが、ファイル システムはそれを提供しません。APIを使用するにはURLが必要です。

于 2013-03-29T06:10:27.217 に答える
2

誰かがこの 6 年前の質問に対する最新の回答を探している場合に備えて、Chrome と Safari の両方で、ローカル サーバーを必要とせずにローカル HTML ファイルが IndexedDB API にアクセスできるようになりました。IE は、これに固執し続けているようです。Edge または Firefox については不明です。

于 2019-09-11T01:36:30.830 に答える
2

セキュリティのために file:/// から実行すると、IndexedDB は無効になります。ブラウザーのパラメーターを制御するかどうかは不明です。その場合、--allow-file-access-from-files を渡すことができます。これにより、IndexedDB が file:/// オリジンから動作できるようになります。

于 2013-03-30T02:05:15.753 に答える