LocalStorage в Greasemonkey - PullRequest
       16

LocalStorage в Greasemonkey

9 голосов
/ 31 октября 2010

Я начал писать сценарий greasemonkey и столкнулся с проблемами при выполнении локального хранилища в сценарии Greasemonkey. Единственный способ понять локальное хранилище в GM - это создать еще один экземпляр Javascript в свойстве newElement.innerHTML DOM, но остальные мои переменные недоступны.

Есть идеи? Вот фрагмент кода Greasemonkey, над которым я работаю.

        var testHref = anchorTag[i].href;
    var testHTML = anchorTag[i].innerHTML;
    var patHref = /item\?id=[0-9]*/g;
    var patCaptureId = /item\?id=([0-9]*)/g;
    var testId = patCaptureId.exec(testHref);
    var patHTML = /[0-9]* comment(|s)/g;
    var patHTML2 = /discuss/g;
    if(patHref.test(testHref) && !patHTML.test(testHTML) && !patHTML2.test(testHTML))
    {
        newElement = document.createElement('span');
        newElement.style.color = "#FF0000";
        newElement.innerHTML = "<a href=\"javascript:localStorage.setItem( 'one', 'rishabhVerma' ); var test = localStorage.getItem( 'one' ); console.log( test );\"> B</a>";
        anchorTag[i].parentNode.insertBefore(newElement, anchorTag[i].nextSibling); 
    }
    i++;

Ответы [ 2 ]

11 голосов
/ 28 июня 2011

Если вам просто нужно сохранить значения, вы можете пойти классическим способом Greasemonkey, используя функции GM_getValue() и GM_setValue(), которые работают довольно хорошо.

8 голосов
/ 31 октября 2010

хммм, unsafeWindow.localStorage не работает? Я знаю, что для chrome не проблема получить localStorage, если честно, никогда не пробовал его на firefox.

...