我正在尝试获取 PouchDB 的 Getting Started Guide使用 IE11 从本地文件 (file://) 进行工作。可能吗?
通过将以下脚本添加到 index.html 文件的 header ,使用本地 http 服务器效果很好:
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
我认为我的问题是indexedDB和localStorage在使用file://协议(protocol)提供服务时似乎都受到IE的限制,但是我能够使用下面的代码让localStorage自行工作post :
!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p));
所以我认为这会让它正常工作,但即使如此,当我添加 pouchdb localstorage adapter 时我收到此错误:“AssertionError:需要 .status,旧的抽象级别”。
即使这确实有效,该解决方案也并不理想,因为我需要将 file://127.0.0.1 添加到受信任的站点列表中。
据我所知,任何帮助都将不胜感激!
最佳答案
感谢Zhi Lv - MSFT我能够在 IE11 中运行该演示,但它要求用户将“file://127.0.0.1”添加到 IE 中的受信任站点列表中。
完成“入门”指南后,您需要进行以下更改。
更新index.html文件中的head元素:
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>VanillaJS • TodoMVC</title>
<link rel="stylesheet" href="style/base.css">
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js"></script>
<script src="pouchdb/object-assign.js"></script>
<script src="pouchdb/pouchdb-7.2.1.js"></script>
<script src="pouchdb/pouchdb.localstorage.js"></script>
<script src="pouchdb/pouchdb.memory.js"></script>
<!--[if IE]>
<script src="style/ie.js"></script>
<![endif]-->
</head>
您需要下载任何缺失的 7.2.1 pouch-db files并放入 pouchdb 目录中。 object-assign.js 可以找到 here .
修改app.js,用这两行替换db变量:
!localStorage && (l = location, p = l.pathname.replace(/(^..)(:)/, "$1$$"), (l.href = l.protocol + "//127.0.0.1" + p));
var db = new PouchDB('todos', {adapter: 'localstorage'});
转到 pouchdb.localstorage.js 的第 8796 行,编辑它以设置 db.status,如下所示:
function LevelUP (db, options, callback) {
db.status = 'unknown';
if (!(this instanceof LevelUP)) {
return new LevelUP(db, options, callback)
}
有点困惑,但对我有用。有任何改进请告诉我。
关于javascript - PouchDB IE11 使用文件 ://,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60385979/