IndexedDB功能在Intel XDK中不起作用

时间:2016-09-07 14:52:57

标签: indexeddb intel-xdk

我创建了一个调用两个indexeddb数据库的Web应用程序,当单击一个按钮时,它会保存一个值并转到另一个页面。

它作为一个Web应用程序非常完美,但是当我尝试将它与Intel XDK一起使用时,它会在控制台中显示:“未捕获的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";
                };
            };
        }

我将这个html标签称为“irMarcas(id)”函数:

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

我过去使用相同的函数(indexedDB)做了一些类似的项目,之前我从未遇到过这个错误。以防我的英特尔XDK版本是3088。

我忘记了什么吗?

谢谢大家。

1 个答案:

答案 0 :(得分:1)

错误表示您的data变量未定义。 data变量未定义,因为object.get(1)与对象库中的任何对象都不匹配。