¿Entonces porque funciona todo menos agregar registros?
No debería funcionar nada.
Os cuento:
Tengo dos input text y un botón:
<input type='text' name='centroNE' id='centro'></input>
<input type='text' name='ubicacionNE' id='ubicacion'></input>
<input type='button' name='guardarNE' id='guardarNE' value='GUARDAR' />
Ok, el botón, al hacer clic ejecuta la función guardar();
Y el contenido de la función guardar es el siguiente:
Código:
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var dataBase = null;
function guardar() {
dataBase = indexedDB.open("baseDatos", 1);
dataBase.onupgradeneeded = function (e) {
active = dataBase.result;
};
dataBase.onsuccess = function (e) {
console.log('Base de datos cargada');
var active = dataBase.result;
var data = active.transaction(["fichas"], "readwrite");
var object = data.objectStore("fichas");
var request = object.put({
centro: document.querySelector("#centro").value,
ubicacion: document.querySelector("#ubicacion").value,
});
request.onerror = function (e) {
alert(request.error.name + '\n\n' + request.error.message);
};
data.oncomplete = function (e) {
document.querySelector("#centro").value = '';
document.querySelector("#ubicacion").value = '';
alert('Registro añadido');
};
}
dataBase.onerror = function (e) {
console.log('Error cargando la base de datos');
};
}
P.D.: He leido que apartir de 4.4, Android ya soporta Indexed DB.