@michail81

Расширение Хром mainfiest v3 servece_worker chrome.tabs.update как убрать одино лишнее срабатывание?

Здравствуйте. Расширение хром mainfiest v3 servece_worker проходит по адресам по списку когда вкладка обновилась инжектится файл, выполняет логику шлет месседж вокеру, новый адрес новый инжект Иногда при успешном обновлении вкладки с новым адресом приходит два сообщения complete и инжектится дважды что ломает логику внедрённого скрипта
var hrefm="адрес"
async function secondStart () {
    let wcall=false;
    let delCount=0;
    const tab = await chrome.tabs.update({url: hrefm});
    const tabId = tab.id;
    console.log(tabId,wcall);
    if(tab.status!="complete"&&!wcall) await onTabUrlUpdated1(tabId);
        wcall=true;
        console.log(delCount,wcall);
        delCount++;
        const results = await chrome.scripting.executeScript({
            target: {tabId},
            files: ['js/myyinject.js']
        },
        () => {
            console.log("myyinject");
        });
}  
function onTabUrlUpdated1(tabId) {
    return new Promise((resolve, reject) => {
        const onUpdated1 = (id, info) => {
            console.log(info.status);
            id === tabId && info.url && done(true)
        };
        const onRemoved1 = id => id === tabId && done(false);
        chrome.tabs.onUpdated.addListener(onUpdated1);
        chrome.tabs.onRemoved.addListener(onRemoved1);
        function done(ok) {
            chrome.tabs.onUpdated.removeListener(onUpdated1);
            chrome.tabs.onRemoved.removeListener(onRemoved1);
            (ok ? resolve : reject)();
        }});}
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы