2017-10-03 10 views
1

indexedDBの使用に非常に基本的な障害があります。現在のFirefox(56.0,64ビット)で動作していますが、私はしばらくこの問題を見てきました。FirefoxのindexedDB.openで 'UnknownError'が発生しました

次ではなく、単純なHTML/Javascriptが問題を示しています。ネイティブとして

<!DOCTYPE html> 
<html> 
<head> 
<title>indexedDB simple test</title> 
<script src="/fb/jquery-2.2.4.min.js"></script> 
</head> 
<body> 
<div id="wrapper"></div> 
<script> 
    try { 
     if ('indexedDB' in window) { 
      $('#wrapper').append('Has native indexedDB<br />'); 
     } else { 
      indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 
      IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction; 
      IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange; 
      $('#wrapper').append('Has indexedDB, but not native<br />'); 
     } 
     if (indexedDB) { 
      var ver = 1; 
      if (! 'open' in indexedDB) { 
       $('#wrapper').append('indexedDB.open doesn\'t exist.<br />'); 
      } 
      if (typeof indexedDB.open != 'function') { 
       $('#wrapper').append('indexedDB.open is not a function.<br />'); 
      } 
      try { 
       var request = indexedDB.open("foo", ver); 
      } catch (ex) { 
       $('#wrapper').append('indexedDB.open threw error.<br />'); 
      } 
     } 
    } catch (ex) { 
    } 
</script> 
</body> 

indexedDBショーを。 indexedDB.openは既存の機能として表示されます。呼び出されると、Webコンソールはindexed_db_simple_test.html:28:30に「UnknownError」と表示します。何が間違っているのか分かりません。

+0

さらに、 'request'は値セットを取得しますが、その値は' error.name == 'を持つ 'error'エレメントを表示しますUnknownError'' –

+0

_"次のかなり単純なHTML/Javascriptは問題を示しています: _ ---えええええええええええええええええええええええええええええええええええのコマンドには2行のコードがあり、残りは例のためには必要ありません私たちは本当にあなたのGUIキャンディをすべて必要としません - ここで実行可能な実行可能なコードサンプルにする必要がなければ、ここで実行することができます。そして、私はペーストするときに何のエラーもありませんその行はFFコンソールではなく、 'request.error'上で直接実行されます。 –

+0

indexedDB.openを呼び出すコードを含めてください – Josh

答えて

1

私は今この問題を数日間扱っています。私たちのケースでは、Firefox ESRを使用しているユーザーに問題があることが判明しました。これは、プロファイルがアップグレードから切り詰められて、indexedDBが正しく動作しなくなったようです。私たちが見つかった修正は、新しいプロファイルを作成するには、このコマンドを使用することです:

$ /Applications/Firefox.app/Contents/MacOS/firefox-bin -P

それは確かにあなたの問題を修正した場合は、それがFirefoxの問題にここで言及見ることができます。詳しくはhttps://bugzilla.mozilla.org/show_bug.cgi?id=1246615

そのプロファイルコマンドの情報は、ドキュメントを参照してください。ただアプリは爆破持っていないためにhttps://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles

私たちの現在のソリューションは、このように基本的に機能チェックを行うことです。

var DBOpenRequest = window.indexedDB.open('someDb'); 

DBOpenRequest.onerror = function(event) { 
    window.location.href = '/unsupported_browser.html'; 
}; 

また、私たちのアプリ(indexedDBに依存して動作する)の使用を可能にするために、プロファイルを修正するようユーザーに依頼しています。

こちらがお役に立てば幸いです。

+0

一般的に良いアドバイスのようです。私は実際にエラーを起こさない方法についてあなたに従いますが、何千人ものユーザーに新しいプロファイルを作成させる可能性はほとんどないと思います。 –

+0

クイックアップデート、ChromeでシークレットモードのときにこのDBOpenRequestが実際にリダイレクトを約10秒間ブロックしているように見えるので、これをテストに追加しました: –

+0

DBOpenRequest.onsuccess = function(イベント){ event.target.result.close ); } –

関連する問題