Probleme mit Chrome-Add-on Programmierung?


12.11.2023, 13:33

Woran könnte das Problem liegen? Hat jemand eine Idee?


12.11.2023, 13:44

Background.js:

let isBotRunning = false;

chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => {
    if (message.action === "toggleBot") {
        isBotRunning = !isBotRunning;
        sendResponse({status: isBotRunning});

        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
            if (tabs.length > 0 && tabs[0].id !== undefined && tabs[0].url.startsWith("https://[removed by me.](/")) {
                chrome.tabs.onUpdated.addListener(function listener(tabId, info) {
                    if (tabId === tabs[0].id && info.status === 'complete') {
                        chrome.tabs.onUpdated.removeListener(listener);
                        chrome.tabs.sendMessage(tabs[0].id, {action: isBotRunning ? "startBot" : "toggleBot", status: isBotRunning}).catch(error => {
                            console.error("Error sending message:", error);
                        });
                    }
                });
            } else {
                console.error("No active tab found to send message to. Please navigate to a compatible website.");
            }
        });
    } else if (message.action === "queryStatus") {
        sendResponse({status: isBotRunning});
    }
});

1 Antwort

Folglich wird eine dieser Bedingungen

if (tabs.length > 0 && tabs[0].id !== undefined && tabs[0].url.startsWith("https://[removed by me.](/")) {

nicht erfüllt.

Ich würde empfehlen, dass du dir die Ergebnisse von jedem einzelnen Term einmal in der Konsole ausgeben lässt.

Beachte, dass startsWith einen String erwartet und auch pur auf den prüft. Reguläre Ausdrücke werden nicht unterstützt. Die runde Klammer vor dem Slash ist definitiv falsch, bei den eckigen Klammern gehe ich davon aus, dass die zu deiner Unkenntlichkeitmachung gehören.