Greasemonkey的LocalStorage

时间:2010-10-31 12:09:08

标签: javascript greasemonkey google-chrome-extension local-storage

我已经开始编写一个greasemonkey脚本,并且遇到了在Greasemonkey脚本中执行localstorage的问题。我可以在GM中找出localstorage的唯一方法是在newElement.innerHTML DOM属性中创建另一个Javascript实例,但其余的变量都无法访问。

有什么想法吗?这是我正在研究的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 个答案:

答案 0 :(得分:11)

如果您只需要存储值,您可以使用GM_getValue()GM_setValue()函数以经典的Greasemonkey方式运行。

答案 1 :(得分:8)

嗯,unsafeWindow.localStorage不起作用我猜?我知道chrome获取localStorage并不是一个问题,从来没有在firefox上试过它说实话。