?
Es funktioniert!
Ich danke dir.
Meine Vorgehensweise:
Erst einmal das Script aus content_script in background. content_script stimmt natürlich nicht.
Dann nach einer Möglichkeit gesucht, auf Promises zu warten, da dies das Problem zu sein schien. Da "await" nicht funktionierte, stieß ich schließlich auf "then" und es funktioniert.
Hier der Code, falls es noch jemand braucht:
manifest.json:
{
"manifest_version": 2,
"name": "shortcuts",
"version": "1.0",
"description": "shortcuts",
"permissions": [
"tabs",
"activeTab"
],
"icons": {
"96": "icon/icon.png"
},
"applications": {
"gecko": {
"id": "addon@example.com",
"strict_min_version": "55.0"
}
},
"commands": {
"first_tab": {
"suggested_key": { "default": "Ctrl+1" }
},
"second_tab": {
"suggested_key": { "default": "Ctrl+2" }
},
"third_tab": {
"suggested_key": { "default": "Ctrl+3" }
},
"fouth_tab": {
"suggested_key": { "default": "Ctrl+4" }
},
"fifth_tab": {
"suggested_key": { "default": "Ctrl+5" }
},
"sixth_tab": {
"suggested_key": { "default": "Ctrl+6" }
},
"seventh_tab": {
"suggested_key": { "default": "Ctrl+7" }
},
"eighth_tab": {
"suggested_key": { "default": "Ctrl+8" }
},
"last_tab": {
"suggested_key": { "default": "Ctrl+9" }
},
"close-q": {
"suggested_key": { "default": "Ctrl+Q" }
}
},
"background": {
"scripts": ["shortcuts.js"]
}
}
shortcuts.js:
browser.commands.onCommand.addListener(function(command) {
const windowTabs = browser.tabs.query({
"currentWindow": true
});
windowTabs.then(handle.bind(null, command), error);
});
function handle(command, windowTabs) {
if(command == "first_tab") {
browser.tabs.update(windowTabs[0].id, {
active: true
});
console.log("Tab 1!");
}
if(command == "second_tab" && windowTabs.length > 1) {
browser.tabs.update(windowTabs[1].id, {
active: true
});
}
if(command == "third_tab" && windowTabs.length > 2) {
browser.tabs.update(windowTabs[2].id, {
active: true
});
}
if(command == "fouth_tab" && windowTabs.length > 3) {
browser.tabs.update(windowTabs[3].id, {
active: true
});
}
if(command == "fifth_tab" && windowTabs.length > 4) {
browser.tabs.update(windowTabs[4].id, {
active: true
});
}
if(command == "sixth_tab" && windowTabs.length > 5) {
browser.tabs.update(windowTabs[5].id, {
active: true
});
}
if(command == "seventh_tab" && windowTabs.length > 6) {
browser.tabs.update(windowTabs[6].id, {
active: true
});
}
if(command == "eighth_tab" && windowTabs.length > 7) {
browser.tabs.update(windowTabs[7].id, {
active: true
});
}
if(command == "last_tab") {
browser.tabs.update(windowTabs[windowTabs.length - 1].id, {
active: true
});
}
if(command == "close-q") {
}
}
function error(msg) {
console.log("Error: " + msg);
}
Danke Cardiac für deine ausdauernde Hilfe.
Falls du noch Verbesserungsvorschläge hast, bin ich aber auch offen dafür.
Cardiac schrieb:
Hau mal bitte ein paar linebreaks in dein json, ich muss soweit zum send button scrollen...
Und hier verstehe ich leider nicht dein Anliegen? Wenn ich mehr Zeilenumbrücke benutze, dann musst du doch noch länger scrollen? Am Anfang der Seite ist doch außerdem auch ein "Beitrag verfassen"-Button?