Расширение Chrome Popup не может прочитать обновленные chrome.storage.local Data из сценария контентаJavascript

Форум по Javascript
Anonymous
Расширение Chrome Popup не может прочитать обновленные chrome.storage.local Data из сценария контента

Сообщение Anonymous »

Я разрабатываю расширение Chrome, которое анализирует URL -адрес текущего вкладки с использованием сценария контента (ContentKeyWords.js), и сохраняет количество подозрительных ключевых слов, найденных в Chrome.storage.local под ключевыми словами. Я хотел бы передать количество ключевых слов, найденных в Popup.js (которая будет отображать информацию в index.html, всплывающее меню, отображаемое в правом верхнем углу расширения браузера). < /P>
Когда всплывающее окно (opup.js) открывается, он пытается прочитать ключевые слова, но всегда уполномочено, что я сможет, что я сможет, что на все возможное. Правильно устанавливает значение (я могу проверить это, читая его вручную в консоли Devtools). < /p>
Примечания отладки: < /p>

Если я жесткий коди Читайте 'Debug'. < /li>
Добавление задержек settimeout в Popup.js (даже до 1000 мс) не достоверно решает проблему (см. Код). < /li>
Скрипт содержимого указан правильно в Manifest.json и работает как ожидается, что Sperified Scorepes). "".

Код: Выделить всё

const susKeywords = ["warning","urgent","login","confirm"];

function checkURLForKeywords() {
const currentURL = window.location.href.toLowerCase();

let noKeywords = 0;
for (let keyword of susKeywords) {
if (currentURL.includes(keyword.toLowerCase())) {
console.log(`Suspicious keyword: "${keyword}" was found in the URL.`);
noKeywords++;
}
}

if (noKeywords === 0) {
console.log("No suspicious keywords found in the URL.");
chrome.storage.local.set({
keyWords: 0
});
}

else if (noKeywords === 1) {
console.log("1 suspicious keyword found");
chrome.storage.local.set({
keyWords: 1
});
}

else if  (noKeywords === 2) {
console.log("2 suspicious keywords found");
chrome.storage.local.set({
keyWords: 2
});
}

else if  (noKeywords >= 3) {
console.log("3 or more suspicious keywords found!");
chrome.storage.local.set({
keyWords: 3
});
}
}
checkURLForKeywords();
< /code>
Здесь appup.js; < /p>
document.addEventListener('DOMContentLoaded', () => {
setTimeout(() => {
chrome.storage.local.get(['keyWords'], (data) => {
const imagePhish = document.getElementById("phish-image")
const phishtext = document.getElementById("phish-text")
const phishTitle = document.getElementById("phish-title")

if (imagePhish && phishtext && phishTitle) {
const susCount = Number(data.keyWords?? 0);
console.log("susWords value from storage:", susCount);

phishtext.textContent = `Suspicious keyword count: ${susCount}`;
phishTitle.textContent = `Phishing Score: ${susCount}`;

if (susCount === 5) {
imagePhish.src = "images/yes1.png";
} else if (susCount === 2) {
imagePhish.src = "images/maybe1.png";
} else if (susCount === 3) {
imagePhish.src = "images/no1.png";
} else {
imagePhish.src = "images/yes1.png"; // Assume safe
}
}

});
}, 1000);
});
Заранее спасибо за помощь ... :)

Подробнее здесь: https://stackoverflow.com/questions/796 ... om-content

Вернуться в «Javascript»