IndexedDB 函数在 Intel XDK 中不起作用

IndexedDB function is not working in Intel XDK

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

它作为 Web 应用程序运行完美,但当我尝试将它与 Intel XDK 一起使用时,它在控制台中显示:"Uncaught TypeError: Cannot set property 'varBusquedaPAM' of undefined"。这是 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) 做过一些类似的项目,但我以前从未遇到过这个错误。以防万一我的 Intel XDK 版本是 3088。

我是不是忘记了什么?

谢谢大家

该错误意味着您的 data 变量未定义。 data 变量未定义,因为 object.get(1) 不匹配对象存储中的任何对象。