【问题标题】:Can local files in IE10 use IndexedDB?IE10本地文件可以使用IndexedDB吗?
【发布时间】:2013-04-29 19:56:41
【问题描述】:

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

来自代码:

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

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

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

【问题讨论】:

    标签: javascript html local-storage internet-explorer-10 indexeddb


    【解决方案1】:

    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 文件。

    【讨论】:

    • 这通常是一个很好的解决方案,但是用户将无法处理安装 node.js 并确保它正在运行并且我将无法访问他们的计算机。 :(
    【解决方案2】:

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

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

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

    无赖。如果 Node.js 不是一个选项,还有 IIS Express。 7.5 可以一直运行到 Windows XP,甚至可以配置为在 XCOPY 部署之外运行。

    Portable IIS Express instructions

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-19
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多