2016-08-25 9 views
0

私はtampermonkeyでスクリプトを書いています。ユーザースクリプト内に変数を保存する

私はvar arr = ["alex", "felix"]を使用しています。これはスクリプトの使用状況に応じて更新できます。変更があった場合、arrに値を追加しました。 arr.push("kelix")

しかし、スクリプトを再読み込みすると、arrはまだvar arr = ["alex", "felix"]です。 newValueは配列にプッシュされません。では、変数arrの変更をどのように保つことができますか?

どうすればよいですか?

+1

refresh.'sessionStorage.setItem後に再使用する変数を格納するために使用のlocalStorage /のsessionStorage( '編曲'、編曲): 'と' sessionStorage.getItem( 'ARR')を使用して、それを取り出します; '。ここのsessionStorageの詳細はhttps://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage –

+0

で、 'localStorage.arr'を直接使うことができます – maioman

答えて

1

私はlocalStorageを使用します。あなたがuserscript、GM_setValueGM_getValueを書いている場合は良いかもしれ

changeDocumentTitleForever("test") 
0

:コンソールで

// ==UserScript== 
// @name  Remember value 
// @namespace util 
// @description Test that remembers any saved value after reload 
// @include  http://stackoverflow.com/* 
// @version  1 
// @grant  none 
// ==/UserScript== 
// Try to load saved data from local storage 
const FIELD_NAME = "userscript_TEST"; 
var saved = localStorage[FIELD_NAME]?JSON.parse(localStorage[FIELD_NAME]):{}; 

// Save data when leaving tab 
window.addEventListener("unload", function() { 
    localStorage[FIELD_NAME] = JSON.stringify(saved); 
}); 
// This changed document title and remembers it 
window.changeDocumentTitleForever = function(title) { 
    saved["title"] = title; 
    document.title = title; 
} 

// This loads title after loading page 
if(saved.title) 
    document.title = saved.title; 

使用方法:以下は、ドキュメントのタイトルを変更することができますし、リロードの上にそれを覚えていますサンプルスクリプトを参照してくださいlocalStorageより選択してください。

var arr = ["alex", "felix"]; 
try { arr = JSON.parse(GM_getValue('arr', '["alex", "felix"]')); } 
catch (_ignore) { /* ignore when JSON.parse fail */ } 
// do something with arr 
arr.push('kelix'); 
GM_setValue('arr', JSON.stringify(arr)); 
関連する問題