2016-08-25 1 views
0

tampermonkey에 스크립트를 쓰고 있습니다.사용자 스크립트 내 변수 설정 유지

나는 스크립트의 사용법에 따라 업데이트 될 수있는 var arr = ["alex", "felix"]을 가지고 있습니다. 변경이있을 때 ar에 값을 추가했습니다. arr.push("kelix")

그러나 스크립트를 다시로드하면 arr은 여전히 ​​var arr = ["alex", "felix"]입니다. newValue는 배열에 푸시되지 않습니다. 그렇다면 변수 arr의 변경 사항을 어떻게 보존 할 수 있습니까?

어떻게해야합니까?

+1

사용 로컬 스토리지/sessionStorage는 ('도착'도착) refresh.'sessionStorage.setItem 후 재사용 변수를 저장하려면 '와'sessionStorage.getItem ('도착')를 사용하여 검색]'. 여기의 sessionStorage에 대한 자세한 정보 : https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage –

+0

당신은'localStorage.arr'를 직접 사용할 수 있습니다. – maioman

답변

1

localStorage을 사용합니다. 콘솔

// ==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; 

사용법 : 당신이 userscript, GM_setValue을 작성하는 경우

changeDocumentTitleForever("test") 
0

것은 GM_getValue이 더 좋을 수를 다음은 문서 제목을 변경할 수 있습니다 및 다시로드를 통해 기억 예제 스크립트를 참조 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));