2015-04-17 47 views
1

我試圖實現使用IndexedDB的一個簡單的web應用程序,並使用此代碼段將檢測瀏覽器的兼容性:爲什麼Internet Explorer的11無法檢測IndexedDB的

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

當在Chrome中運行它不會打開一個警告框(如預期的那樣),但是當在IE中運行時,彈出警報框。我想這只是一個糟糕的Internet Explorer版本,所以我查了一下。它是11.我去http://caniuse.com看看支持哪個版本,並支持IE 11。出了什麼問題?我是否使用錯誤的代碼來檢測indexedDB?

+0

你試過window.msIndexedDB? – Josh

+0

請參閱開發人員工具的仿真選項卡。正在使用什麼documentMode/Emulation模式。它還會告訴你它是如何設置的(x-ua meta,兼容性視圖設置,企業模式等)。 –

回答

4

IE11確實支持IndexedDB,您提供的代碼看起來很合理,所以如果警報沒有出現,那麼肯定還有其他一些因素。你沒有提到多少在您的環境的方式,所以這裏有幾件事情來看待:

  • 如果通過HTTP or HTTPS加載這個公共網頁,很可能你沒有裝載在邊頁模式,就像你可能正在使用不在邊緣模式下渲染的DOCTYPE(以前稱爲標準模式)。如果您不確定what this means,請確保您網頁的第一行是<!doctype HTML>。 (關於使用F12工具來驗證文檔尖端a good one

  • 如果該網頁被你的本地網絡(包括本地硬盤驅動器)上運行,它可能在頁面加載in compatibility view。你想添加一個x-ua兼容的標頭,其中"content="ie=edge"

  • 另一種可能性是,由於本地組策略設置和/或其他環境因素,IndexedDB可能被禁用。這很難預測,但一種響應方式可能是嘗試使用代碼claims to work在完全不同的環境中測試該功能,例如,連接到其它環境的PC,例如你的家庭網絡。

不確定在這一點上建議什麼,但(希望)這裏有一些有用的東西。

希望這有助於...

- 蘭斯

相關問題