Расширение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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