Browse Source

解决隐私模式下无法使用的问题

tags/v6.12
枫谷剑仙 5 years ago
parent
commit
a9e6bdf021
4 changed files with 37 additions and 23 deletions
  1. BIN
      images/cards_ko/CARDS_059.PNG
  2. BIN
      images/cards_ko/CARDS_064.PNG
  3. BIN
      images/cards_ko/CARDS_065.PNG
  4. +37
    -23
      script.js

BIN
images/cards_ko/CARDS_059.PNG View File

Before After
Width: 1024  |  Height: 1024  |  Size: 868 kB Width: 1024  |  Height: 1024  |  Size: 882 kB

BIN
images/cards_ko/CARDS_064.PNG View File

Before After
Width: 1024  |  Height: 1024  |  Size: 881 kB Width: 1024  |  Height: 1024  |  Size: 959 kB

BIN
images/cards_ko/CARDS_065.PNG View File

Before After
Width: 1024  |  Height: 1024  |  Size: 258 kB Width: 1024  |  Height: 1024  |  Size: 791 kB

+ 37
- 23
script.js View File

@@ -22,7 +22,7 @@ if (location.search.includes('&')) {
}

const dbName = "PADDF";
var db;
var db = null;
const DBOpenRequest = indexedDB.open(dbName,2);

DBOpenRequest.onsuccess = function(event) {
@@ -32,9 +32,11 @@ DBOpenRequest.onsuccess = function(event) {
};
DBOpenRequest.onerror = function(event) {
// 错误处理
console.log("PADDF:数据库无法启用,数据全部重置。",event);
console.log("PADDF:数据库无法启用,删除可能存在的异常数据库。",event);
indexedDB.deleteDatabase(dbName); //直接把整个数据库删掉
alert('Some errors have occurred, please refresh the page.');
console.log("也可能是隐私模式导致无法启用数据库,于是尝试不保存的情况下读取数据。");
loadData();
//alert('Some errors have occurred, please refresh the page.');
//history.go(); //直接强制刷新
};
DBOpenRequest.onupgradeneeded = function(event) {
@@ -490,7 +492,7 @@ function loadData(force = false)

if (statusLine) statusLine.classList.remove("loading-check-version");
if (statusLine) statusLine.classList.add("loading-mon-info");
if (currentCkey.ckey.card == lastCurrentCkey.ckey.card) {
if (db && currentCkey.ckey.card == lastCurrentCkey.ckey.card) {
console.log(`cards_${currentDataSource.code} ckey相等,直接读取已有的数据`, currentCkey.ckey.card);
const transaction = db.transaction([`cards`]);
const objectStore = transaction.objectStore(`cards`);
@@ -528,16 +530,22 @@ function loadData(force = false)
console.log("Cards数据JSON解码出错", e);
return;
}
const transaction = db.transaction([`cards`], "readwrite");
transaction.oncomplete = function(event) {
console.log(`cards_${currentDataSource.code} 写入完毕`);
lastCurrentCkey.ckey.card = currentCkey.ckey.card;
lastCurrentCkey.updateTime = currentCkey.updateTime;
localStorage.setItem("PADDF-ckey", JSON.stringify(lastCkeys)); //储存新的ckey
if (db)
{
const transaction = db.transaction([`cards`], "readwrite");
transaction.oncomplete = function(event) {
console.log(`cards_${currentDataSource.code} 写入完毕`);
lastCurrentCkey.ckey.card = currentCkey.ckey.card;
lastCurrentCkey.updateTime = currentCkey.updateTime;
localStorage.setItem("PADDF-ckey", JSON.stringify(lastCkeys)); //储存新的ckey
dealCardsData(Cards);
};
const objectStore = transaction.objectStore(`cards`);
objectStore.put(Cards,currentDataSource.code);
}else //隐私模式无法启动数据库
{
dealCardsData(Cards);
};
const objectStore = transaction.objectStore(`cards`);
objectStore.put(Cards,currentDataSource.code);
}
},
onerror: function(response) {
console.error("Cards JSON数据获取失败", response);
@@ -570,7 +578,7 @@ function loadData(force = false)
if (statusLine) statusLine.classList.remove("loading-mon-info");

if (statusLine) statusLine.classList.add("loading-skill-info");
if (currentCkey.ckey.skill == lastCurrentCkey.ckey.skill) {
if (db && currentCkey.ckey.skill == lastCurrentCkey.ckey.skill) {
console.log(`skills_${currentDataSource.code} ckey相等,直接读取已有的数据`, currentCkey.ckey.card);
const transaction = db.transaction([`skills`]);
const objectStore = transaction.objectStore(`skills`);
@@ -608,16 +616,22 @@ function loadData(force = false)
console.log("Cards数据JSON解码出错", e);
return;
}
const transaction = db.transaction([`skills`], "readwrite");
transaction.oncomplete = function(event) {
console.log(`skills_${currentDataSource.code} 写入完毕`);
lastCurrentCkey.ckey.skill = currentCkey.ckey.skill;
lastCurrentCkey.updateTime = currentCkey.updateTime;
localStorage.setItem("PADDF-ckey", JSON.stringify(lastCkeys)); //储存新的ckey
if (db)
{
const transaction = db.transaction([`skills`], "readwrite");
transaction.oncomplete = function(event) {
console.log(`skills_${currentDataSource.code} 写入完毕`);
lastCurrentCkey.ckey.skill = currentCkey.ckey.skill;
lastCurrentCkey.updateTime = currentCkey.updateTime;
localStorage.setItem("PADDF-ckey", JSON.stringify(lastCkeys)); //储存新的ckey
dealSkillData(Skills);
};
const objectStore = transaction.objectStore(`skills`);
objectStore.put(Skills,currentDataSource.code);
}else //隐私模式无法启动数据库
{
dealSkillData(Skills);
};
const objectStore = transaction.objectStore(`skills`);
objectStore.put(Skills,currentDataSource.code);
}
},
onerror: function(response) {
console.error("Skills JSON数据获取失败", response);


Loading…
Cancel
Save