最近作っているスクリプトにNG機能を持たせようと思っており
NGワードを保存する処理を考え中
やはり、グリモンが用意したものを使ったほうがいいのかなあ…
そこで、GM_setValueについて調べる
自分の過去記事のスクリプトでは、JSONでlocalstrageへのデータ保存を使っていた
function setData(key, data) {
if (window.JSON == false) {
alert('Your Web Browser is not supported JSON.');
return ;
}
if (key != null && data != null) localStorage.setItem(key, data);
}
function getData(key, defValue) {
var data = '';
if (window.JSON == false) {
alert('Your Web Browser is not supported JSON.');
return data;
}
data = localStorage.getItem(key);
if (data == null) (typeof defValue == 'defined') ? data = '' : data = defValue;
return data;
}
GM関数を使うのに、@grant指定しないといけないことと、@grant指定をすると
jQueryの処理を入れるときにjQueryのjsファイルを@requireしないといけない
参照先はgoogleの提供するライブラリがあるとはいえ、どう影響するのかわからなかったから
今までは数値とフラグにしか使用しなかった(数値以外は保存しない処理で弾いていた)が
NG文字列となると、問題のおきそうな文字をエスケープさせないとまずい気がする
この辺りの知識が乏しいので、xss関連の記事を参考に調べ中