Mh, leider hatte die letzte Version einen Bug!
Bei mehrmaligen Nutzen der Funktion öffnete sich jedes Mal ein Tab mehr.
Eventuell jetzt:
JavaScript
(function () {
if (location.href !== 'chrome://browser/content/browser.xhtml') return;
let translate = function () {
let browserMM = gBrowser.selectedBrowser.messageManager;
function listener(message) {
let text = message.data;
const deepl__deeplURL = `https://www.deepl.com/translator`;
const browserLang = navigator.language;
const deepl__defaultLang = browserLang.startsWith('de') ? 'en' : 'de';
if (text) {
openWebLinkIn(`${deepl__deeplURL}#${deepl__defaultLang}/${encodeURIComponent(text)}`, 'tab');
}
browserMM.removeMessageListener('getSelection', listener, true);
}
browserMM.addMessageListener('getSelection', listener);
browserMM.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true);
};
let menuitem = document.createXULElement('menuitem');
menuitem.id = 'context-DeepLtranslate';
menuitem.setAttribute('label', 'Übersetzen (DeepL)');
menuitem.classList.add('menuitem-iconic');
let ProfilePath = Services.dirsvc.get("ProfD", Ci.nsIFile).path.replace(/\\/g, "/");
let IconPath = '/chrome/icons/';
let ButtonIcon = "DeepL_2.png";
menuitem.style.setProperty('--menuitem-icon', 'url("file:' + ProfilePath + IconPath + ButtonIcon + '")');
menuitem.addEventListener('command', translate);
let refItem = document.getElementById('context-inspect');
refItem.parentNode.insertBefore(menuitem, refItem);
})();
Alles anzeigen