У одного индийского программиста нашёл такой трюк с IndexedDB (через вызов deprecated setVersion()):
var db = indexedDB.open("test_db","3");
console.log("check(href)"+db);
db.onerror = function(event) {
console.log("Database error: "+event.target.errorCode);
}
db.onblocked = function(event) {
}
db.onupgradeneeded = function(event) {
var dbreq = event.target.result;
// ... (работа с базой)
}
db.onsuccess = function(event) {
console.log("dbreq.onsuccess");
var dbreq = event.target.result;
vreq = dbreq.setVersion("3");
}
}
IndexedDB у меня используется для обмена данными между background page и content script. В принципе, можно использовать messages, но я что-то решил попробовать базу данных.
Мне нужно, чтобы в разных js-скриптах одновременно была открыта одна и та же база, через open(), чтобы данные синхронизировались после commit-а, и чтобы close() из одного скрипта (background page) не влиял на работу другого скрипта (один из запущенных content script). Как это правильно сделать? (а то выдаются разные ошибки: с кодами 11, 8, 20).
P.S. Да, забыл добавить. Это chrome extension.