Probleme mit Chrome-Add-on Programmierung?
Ich programmiere mit Chat GPT-4 ein Chrome-Add-on, welches auf einer Website einen Prozess automatisieren soll und dafür knöpfe in bestimmter Reihenfolge drücken soll.
Aber ich bekomme das Add-on nicht einmal zum Laufen. Ich bekomme ständig die Fehlermeldung: "background.js: No active tab found to send message to. Please navigate to a compatible website."
Chat GPT-4 weiß auch nicht weiter und scheint sich immer im Kreis zu drehen. Mit der fehlerbehebung.
In chrome://discards/ habe ich die Website bei "Auto Discardable" schon auf "X" gesetzte.
In manifest.json sind die richtigen Berechtigungen gesetzt und auch die angesteuerte Website. Und in background.js, script.js, popup.js und popup.html findet Chat GPT-4 keine Probleme.
Woran könnte das Problem liegen? Hat jemand eine Idee?
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.