为什么Internet Explorer 11没有检测到indexedDB

时间:2015-04-17 15:32:25

标签: internet-explorer indexeddb

我正在尝试使用indexedDB实现一个简单的Web应用程序,并使用此代码段来检测浏览器兼容性:

if(!window.indexedDB) {
   alert("Your browser does not support indexedDB.");
}

在Chrome中运行时,它不会打开警告框(如预期的那样),但在IE中运行时,会弹出警告框。我认为这只是一个糟糕的Internet Explorer版本,所以我查了一下。它是11.我去http://caniuse.com看看支持哪个版本,支持IE 11。出了什么问题?我使用错误的代码来检测indexedDB吗?

1 个答案:

答案 0 :(得分:4)

IE11确实支持IndexedDB,并且您提供的代码看起来合理,因此如果警报没有出现,那么必须有其他一些因素。你没有在环境方面提到太多,所以这里有几点需要注意:

  • 如果这是通过HTTP or HTTPS加载的公共网页,则可能是您没有以边缘模式加载页面,因为您可能正在使用不以边缘模式呈现的DOCTYPE(以前称为作为标准模式)。如果您不确定what this means,请确保您网页的第一行是<!doctype HTML>。 (关于使用F12工具验证文档的提示是a good one。)

  • 如果此网页在本地网络(包括您的本地硬盘驱动器)上运行,则可能正在加载页面in compatibility view。您需要在"content="ie=edge"

  • 中添加兼容x-ua的标头
  • 另一种可能性是,由于本地组策略设置和/或其他环境因素,可能会禁用IndexedDB。这很难预测,但一种回应方式可能是尝试使用claims to work在完全不同的环境中的代码来测试该功能,例如连接到某些其他环境的PC,例如你的家庭网络。

目前还不确定要提出什么建议,但(希望)这里有一些有用的东西。

希望这会有所帮助......

- Lance