最近作っているスクリプトにNG機能を持たせようと思っており
NGワードを保存する処理を考え中
やはり、グリモンが用意したものを使ったほうがいいのかなあ…
そこで、GM_setValueについて調べる
自分の過去記事のスクリプトでは、JSONでlocalstrageへのデータ保存を使っていた
//====================================================== //set //------------------------------------------------------ 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); } //====================================================== //get //------------------------------------------------------ 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; //alert(data); return data; }
GM関数を使うのに、@grant指定しないといけないことと、@grant指定をすると
jQueryの処理を入れるときにjQueryのjsファイルを@requireしないといけない
参照先はgoogleの提供するライブラリがあるとはいえ、どう影響するのかわからなかったから
今までは数値とフラグにしか使用しなかった(数値以外は保存しない処理で弾いていた)が
NG文字列となると、問題のおきそうな文字をエスケープさせないとまずい気がする
この辺りの知識が乏しいので、xss関連の記事を参考に調べ中