gpt4 book ai didi

javascript - 如何使用 chrome.storage.get 函数中的数据?

转载 作者:行者123 更新时间:2023-12-03 02:31:22 26 4
gpt4 key购买 nike

我正在尝试从 Chrome 扩展存储中获取数据,但我只能在此函数中使用它们。

var help = new Array();

chrome.storage.local.get(null, function(storage){
//get data from extension storage
help = storage;
console.log(storage);
});

console.log(help); // empty

控制台结果:

content.js:1 content script running  
content.js:11 []
content.js:8 {/in/%E5%BF%97%E9%B9%8F-%E6%99%8F-013799151/: "link", /in/adam-
isaacs-690506ab/: "link", /in/alex-campbell-brown-832a09a0/: "link",
/in/alex-davies-41513a90/: "link", /in/alex-dunne-688a71a8/: "link", …}

异步函数获胜。我再次编写了代码,现在函数被调用数百次,我不能以直接方式执行此操作
代码:

console.log("content script running");
var cards = document.getElementsByClassName("org-alumni-profile-card");
var searchText = "Connect";
function check(exi, cards) {
chrome.storage.local.get(null, function(storage) {
for (var key in storage) {
if (storage[key] == "link" && key == exi) {
cards.style.opacity = "0.3";
}
}
});
}
for (var i = 0; i < cards.length; i++) {
var ctd = cards[i].getElementsByClassName(
"org-alumni-profile-card__link-text"
);
var msg = cards[i].getElementsByClassName(
"org-alumni-profile-card__messaging-button-shrunk"
);

if (ctd.length < 1 || msg.length > 0) {
cards[i].style.display = "none";
} else {
var exi = cards[i]
.getElementsByClassName("org-alumni-profile-card__full-name-link")[0]
.getAttribute("href");
check(exi, cards[i]);
}
}

我的问题的解决方案我想删除这个主题,但我不能,所以我不会这样做,而是把我最终完成的事情放在这里。

上面的代码是错误的,因为它从网站获取链接列表,并且对于每个链接,脚本从存储中获取数据......这当然是愚蠢的。我没有看到如此简单的解决方案:将所有文件的代码放入此函数中 - 它仅从存储中获取数据一次。我很抱歉用这样的主题搞乱了这个精彩的论坛。希望你能原谅。

最佳答案

help 将返回 undefined,因为它引用的是异步函数,并且不是该函数的返回值。存储中的内容看起来打印在 content.js:8 上,即第 8 行。

关于javascript - 如何使用 chrome.storage.get 函数中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com