Я создал простой аддон, который при нажатии делает закладку на активной вкладке в определенной папке. Аддон состоит из двух файлов .js, background.js и popup.js. Background.js выполняет тяжелую работу и отправляет некоторые значения даты в popup.js после создания закладки, которая затем отображает их во всплывающем окне. он также отображает текст «ОК» на кнопке надстройки. Через 2 секунды всплывающее окно и текст кнопки очищаются автоматически. Все отлично работает, закладки и при показе и закрытии всплывающего окна и значка.
Здесь проблема, хотя. Если мне удастся закрыть всплывающее окно в течение этих 2 секунд, щелкнув в любом месте страницы или браузера, текст значка не исчезнет. Пока я снова не нажму кнопку в следующий раз и не буду повторять процесс, позволяя всплывающему окну закрыться на этот раз, текст исчезнет.
Итак, что вызывает это и как я могу это исправить? Мне нужно очистить текст значка, даже если я вручную закрою всплывающее окно в течение этих 2 секунд.
Вот код для popup.js
// Listener calls background
document.addEventListener("DOMContentLoaded", function () {
backGround = chrome.extension.getBackgroundPage();
backGround.browserOnClickAxn(insertText);
});
// Set text
function insertText (msg) {
var message = "To find your saved tabs, look in the folder ";
message = message + "<br>";
message = message + "<strong>";
message = message + "\""+msg+"\"";
message = message + "</strong>";
message = message + "<br><br>";
message = message + " under ";
message = message + "<br>";
message = message + "<strong>";
message = message + "\"Other Bookmarks/BOOKMARKS/VARIOUS\"";
message = message + "</strong>";
message = message + "<br><br>";
document.getElementById('msg').innerHTML = message;
setBadgeText('OK!');
setTimeout(function () {
setBadgeText('');
window.close();
}, 2000);
}
function setBadgeText(text) {
chrome.browserAction.setBadgeBackgroundColor({
color: '#32cd32'
});
chrome.browserAction.setBadgeText({
text: text
});
}