繁体   English   中英

无法在我的Google Chrome扩展程序中使用localStorage值

[英]Can't use localStorage value in my Google Chrome extension

我编写了一个Chrome扩展,为一些输入元素添加了一个char计数器。 没有用户界面,如果用户在特定页面上,它只会注入字符计数代码。

输入中应出现多少个字符是有限制的。 我最初编写它只显示字符数,但后来我觉得如果用户可以选择查看它们剩下多少个字符会很好。 所以我决定创建一个选项页面。

在我的选项页面的某个时刻,我这样做:

localStorage["count"] = count; // count is the string "countUp" or "countDown"

事实证明我无法从contentscript.js访问options.html的localStorage所以我不情愿地创建了一个background.html页面,它监听来自contentscript的请求并返回内容脚本要求的localStorage值。

在内容中(简化)

var countOption;

chrome.extension.sendRequest(
    {method: "localStorage", key: "count"},
    function(response){
        countOption = response.data;
        console.log(countOption); // returns "countUp"
    }
);

console.log(countOption); // returns undefined

if(countOption === "countUp") {
    doSomething();
} else {
    doSomethingElse();
}

背景页面

<script type="text/javascript">
    chrome.extension.onRequest.addListener(
        function(request, sender, sendResponse) {
            if(request.method === "localStorage") {
                sendResponse({data: localStorage[request.key]});
            } else {
                sendResponse({});
            }
        }
    );
</script>

问题是我无法为countOption分配一个值,以便在我的其余脚本范围内可以访问它。 当我在chrome.extension.sendRequest的响应中分配它时, this是窗口对象,所以我尝试全局声明countOption ,但在我的其余脚本中仍未undefined

谁能看到我哪里出错了? 谢谢。

会这样的吗?

function executeCount(countOption)
{
console.log(countOption); // returns undefined

if(countOption === "countUp") {
    doSomething();
} else {
    doSomethingElse();
}
}

chrome.extension.sendRequest(
    {method: "localStorage", key: "count"},
    function(response){
        executeCount(response.data);
    }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM