カテゴリ:PLiCy公式

【ティラノ】libs.jsのEDGE環境におけるエラー

ティラノスクリプトのlibs.jsにて、EDGEでセーブを行った際にエラーが発生する症状が発生しております。
本仕様はブラウザ上のlocalStorageにセーブを行う際に発生するものです。

localStorageでは、Chrome,Safari,Firefoxではバイナリデータを保存することが可能ですが、
EDGE/IEではバイナリデータを保存しようとした場合にエラーが発生いたします。
本件は、最新版のlibs.jsでセーブデータがバイナリデータとして圧縮されて保存される仕様が追加された際に、EDGEではバイナリデータが保存できない仕様であるため発生しているエラーであると推定されます。 本問題への暫定対応について 本問題に対応を行う場合、libs.js
-------------------------------------------------

$.setStorageCompress = function(key, val) {
val = JSON.stringify(val);
localStorage.setItem(key, LZString.compress(escape(val)));
//localStorage.setItem(key, escape(val));
};
$.getStorageCompress = function(key) {
try {

var gv = "null";
if (localStorage.getItem(key)) {
gv = unescape(LZString.decompress(localStorage.getItem(key)));

if (gv == "null") {
gv = unescape(localStorage.getItem(key));
}
}

if (gv == "null")
return null;

} catch(e) {
alert("この環境はセーブ機能を利用できません。ローカルで実行している場合などに発生します");
$.confirmSaveClear();
}

return gv;

};
-------------------------------------------------
から
-------------------------------------------------

$.setStorageCompress = function(key, val) {
val = JSON.stringify(val);
try{
localStorage.setItem(key, LZString.compress(escape(val)));
return;
}catch(e){
}
try{
localStorage.setItem(key, escape(val));
}catch(e){
}
};
$.getStorageCompress = function(key) {
try {

var gv = "null";
if (localStorage.getItem(key)) {
var data = LZString.decompress(localStorage.getItem(key)) || localStorage.getItem(key);
gv = unescape(data);
if (gv == "null") {
gv = unescape(localStorage.getItem(key));
}
}

if (gv == "null")
return null;

} catch(e) {
alert("この環境はセーブ機能を利用できません。ローカルで実行している場合などに発生します");
$.confirmSaveClear();
}

return gv;

};
-------------------------------------------------

と書き直すことで暫定的に対応可能です。

2018.06.25