2016-09-07 72 views
0

我製作了一個Web應用程序,它調用兩個indexeddb數據庫,當單擊按鈕時它會保存一個值並轉到另一頁。IndexedDB函數在英特爾XDK中不起作用

它作爲一個完美的web應用程序,但當我嘗試使用它與英特爾XDK它顯示在控制檯中:「Uncaught TypeError:無法設置屬性'varBusquedaPAM'未定義」。這是JavaScript:

var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 
     var dataBase = null; 
     var bdBusqueda = null; 

     function iniciarBD() { 
      dataBase = indexedDB.open('bdbeta', 4); 

      dataBase.onupgradeneeded = function (e) { 
       var active = dataBase.result; 
       var objetoProductos = active.createObjectStore("productos", {keyPath: 'id', autoIncrement: true}); 
       objetoProductos.createIndex('Nombre_Producto', 'producto', {unique: true}); 
      }; 

      dataBase.onsuccess = function (e) { 
       varBusqueda(); 
      }; 
      dataBase.onerror = function (e) { 
       alert('Error al cargar la base de datos'); 
      }; 
     } 

     function varBusqueda() { 
      bdBusqueda= indexedDB.open('bdbeta2', 1); 

      bdBusqueda.onupgradeneeded = function (e) { 
       var active = bdBusqueda.result; 
       var objetoLista = active.createObjectStore("variableBusqueda", {keyPath: 'id', autoIncrement: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Producto', 'varBusquedaPAM', {unique: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Marca', 'varBusquedaMAM', {unique: true}); 
       objetoLista.createIndex('Variable_de_Busqueda_Modelo', 'varBusquedaMAI', {unique: true}); 
      }; 

      bdBusqueda.onsuccess = function (e) { 
       //Do nothing 
      }; 
      bdBusqueda.onerror = function (e) { 
       alert("Hubo un problema al conectar a la base de datos"); 
      }; 
     } 

     function irMarcas(id){ 
      var active = bdBusqueda.result; 
      var data = active.transaction(["variableBusqueda"], "readwrite"); 
      var object = data.objectStore("variableBusqueda"); 
      var request = object.get(1); 

      request.onsuccess = function() { 
       var data = request.result; 

       data.varBusquedaPAM = id; // <---HERE IS WHERE THE ERROR IS SHOWN 

       var consultaActualizar = object.put(data); 
       consultaActualizar.onsuccess = function() { 
        window.location.href = "marca.html"; 
       }; 
      }; 
     } 

我調用函數 「irMarcas(ID)」 形成這個HTML標籤:

<input type="button" id="TM" value="Tarjetas madre" onclick="irMarcas(this.id);"> 

我的確在具有相同功能的過去的一些類似項目(IndexedDB的)我從來沒有得到過這個錯誤。以防萬一我的英特爾XDK版本是3088.

我忘了什麼嗎?

謝謝大家。

回答

1

該錯誤表示您的data變量未定義。 data變量未定義,因爲object.get(1)與您的對象庫中的任何對象都不匹配。

+0

謝謝,這意味着我以前的數據(我作爲一個webapp測試)已經沒有了? –

+0

數據可能不再存在的原因有幾個。您可能會以某種方式刪除它,或者允許將其刪除。或者,您可能會連接到您從未插入數據的數據庫,例如來自不同來源的數據庫。 – Josh