1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. lenny2

Beiträge von lenny2

  • Seitennavigation - Fly Out Menü

    • lenny2
    • 26. Mai 2025 um 13:08
    Zitat von 2002Andreas

    Teste bitte mal:

    Zitat von Horstmann

    Oder sowas,

    Vielen Dank! :thumbup:

  • Seitennavigation - Fly Out Menü

    • lenny2
    • 26. Mai 2025 um 10:30
    Zitat von Horstmann

    Link Button:

    v139, CSP (Content Security Policy) blockiert dieses Skript. Bitte passen Sie es für maximale Sicherheit an. Danke!

  • Restart_Firefox.uc.js

    • lenny2
    • 12. Mai 2025 um 13:04
    Zitat von Mira_Belle

    Es geistern hier onBoard ja einige Versionen dieses Skriptes herum.
    Ich habe mich mal diesem angenommen und es fit gemacht.

    Mir gefällt Ihre Lösung mit den Symbolen, und ich verwende auch den Linksklick. :thumbup:

  • Gruppe verschwunden nach "Speichern und Schließen"

    • lenny2
    • 10. Mai 2025 um 11:04

    Wenn Sie CSS-Multirow statt JS-Multirow verwenden, wird die Button "Alle Tabs auflisten" immer angezeigt.

  • Gruppe verschwunden nach "Speichern und Schließen"

    • lenny2
    • 10. Mai 2025 um 08:37

    Die gespeicherte Gruppe ist unter der Button „All Tabs“ in der oberen rechten Ecke versteckt (like Chevron).

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • lenny2
    • 8. Mai 2025 um 16:10
    Zitat von Mira_Belle

    Yes!
    Ich habe meine französiche Freundind gefragt ob sie mir helfen könnte,
    das Skript so umzuschreiben, dass es auch ohne
    security.allow_unsafe_dangerous_privileged_evil_eval => "true"
    funktionieren würde.

    Base64-Icon erfolgreich durch Ressource-Icon ersetzt, Skriptgröße um 1,7kB verringert.
    Altes Icon1

    Code
            // Assign icons
           var mainicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADKElEQVR42p2TX2hTdxTHPzfJTW6T3qQmapvWabUbog+udp3kYeLQ4f6wiZQNtjlXHyZaBYe6TekYVGRQYexFscOtuD7UdWxzMtAXEbZStKIbDsaUCbVj9o8mTW+aNrlJbu5vJ8Ex2OMO/Lj87jnne873nO9PSyTV3tkAfYi5NhQ1MB1Ijc3ijN+D7CQh28YK+GHDMyxpjlJTkmAdQi5dWvOsUrYkGB5QC5Kcg/aFBxxqqycmcY38a/1yTqYgMw8ByfFKjtZ4V6myCeW8IApyfOw2155fw1DG4dOJJK1r45x5BPDUpZuMr2uXSuAvgBMQgOitjLJNn7iDSJP0rIJ35dt19TeGoi0Es1MMP72KFvm3+88phuYM3HCd3ObQizpa/cW7Kh020E0Tz1yOUxvjdIr7o6t/cLpkEJqZp7s5zN62ZewfnWLQ9VIIBqodBdI5tIbBG8oKhSAaJZDN8tpSP5+3L8eVgLbeAdKal7NH3mKL3FcOXCfV1ITjc7FLFrWZIlpt/4+qEA7hLRrCwk/RusOXu7ax8xHvGTkVgi/89As/T8ia9EUyghKOWSaYyqNx8oIiuEgcshetsooceibJinvTfNH1DpseD3LHSZE4eprs6k24NQaevI1fF8q5FJqv9xvlmFLdkKZlhb77E8TdIlFD54OOl3mzdXm1k+sP0jzbdwF7cRhsj8ysAWYnpYPeQfXPnn3JJG8/sZT+PW8gkuDbkWEiRh3b29dV/edujNE5dB4nHJSCUrQsTdP9mUKrCKHA5piHK+918quVp/VoD9W9uhGejNRx6+N9VZAmoTJZmhbK4vR7BGDPCQEQ/qU8R15aT2/Hi/R8PcyxyyMyVBmaXwIfPiTVf5yYHiF28ARpOyuqk3nJ4DV2HFc4SamUZ3vrGr7vPlitFNraQc4SzZZt6ptWMv3DAOdGrrGj7yvR+2KYr5A0BeCVAwqvBQuyMG+MTzp3cvj15/ivfXfzNq++/yFEIlD7GFjZ6uPRaE4oGuNQI68jIINJu0QbTFoadIJlL7lSgb8sxbSVEb8geUUVtkh55r50MY5Wec6jibV9/A9LjP7e9TdFQScjW9P1XAAAAABJRU5ErkJggg==";

    Neue Icon1

    Code
            // Assign icons
           var mainicon = 'chrome://browser/skin/translations.svg';

    Altes Icon2

    Code
                img.setAttribute('style', 'display:block;float:right;width:22px;height:22px;padding:0;margin-top:2px;margin-right:1px;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAACXBIWXMAAArEAAAKxAFmbYLUAAABc0lEQVQ4y2P84mzGQBlgYaAYoBjBrKn79/plgnrQlCGM4Jwwj0lC6kdjKX5TmDV1Oeq7/7149r0gCcUIZk1dJgkpBgYGjvruXyvm/96wErt+fWOOylYGBgYmCSm4WxjhwQkxHsL+vW39r0Uz0f3s6M6eVsDAyMjAwIDsWEbkGGHW1OWoaGFgZ8c0BaH///8fHbV/L56BSzGiRSqztj5HWROaKcj6f86e+GffDmQtjJjpAs2Uf48f4NGP3Qg0U6AAh36cRkBNqWhmYGWDcH/OmoBVP77UySgmwcDCCucyyciTlsCRw4/hz28GVjZWr0AGBgbMmMZuBFr4/3/5nKOskYGdA5cp6GGBNf6YtfUhpmBNdShGsFjas+dVYI0/ZFN+zZ/2e+cmLEYgEjiO+MNlCtQI5Azyc1L7n2MHsQYzk4o6Z8tECBtuCjQ4/16//O/FM4KZ/d+dm99r8jlbJv69eRXdFSQVOUwq6v/u3CScOuladgIAhMrZgyTDTBwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');

    Neue Icon2

    Code
                img.setAttribute('style', 'display:block;float:right;width:22px;height:22px;padding:0;margin-top:6px;margin-right:-4px;border:none;cursor:pointer;background-image:url("chrome://global/skin/icons/close-fill.svg");background-repeat:no-repeat;background:-o-skin("Caption Close Button Skin");');
  • Einbindung von Icons in Skripts

    • lenny2
    • 8. Mai 2025 um 11:46

    Im JS-Skript für GreaseMonkey können Sie das Online-Symbol verwenden // @icon https://www.google.com/favicon.ico
    Für kontext-Übersetzer von Google und DeepL wäre dies möglicherweise eine gute Möglichkeit, Originalsymbole zu erhalten. Wenn das möglich ist.

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • lenny2
    • 6. Mai 2025 um 12:08
    Zitat von Mira_Belle

    lenny2 A new version of your script, without security.allow_unsafe_dangerous_privileged_evil_eval set to true!

    v139.0b4. Die deutsch-französische Team hat gute Arbeit geleistet :thumbup::)

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • lenny2
    • 6. Mai 2025 um 06:32
    Zitat von Mira_Belle

    Also, wie auch immer, das Skript von lenny2 funktioniert bei mir nicht.

    v139.0b4 security.allow_unsafe_dangerous_privileged_evil_eval set to true

  • Einige Skripte funktionieren seit ff 138 nicht mehr

    • lenny2
    • 5. Mai 2025 um 15:33

    Google Context Translation. Übersetzt in einem Pop-up-Fenster, nicht in einer neuen Tab. Getestet mit v139.0beta3.

    JavaScript
    // google-context-translate.uc.js (any > de)
    location.href.endsWith("://browser/content/browser.xhtml") && ({
        async init(func) {
            await delayedStartupPromise;
            var code = func.toString();
            code = code.slice(code.indexOf("{") + 1, -1).trim();
            var addEventListener = (...args) => {
                var trg = args[3];
                if (!trg) trg = args[3] = window;
                trg.addEventListener(...args);
                this.handlers.push(args);
            }
            new Function(
                "_id,xhtmlns,addDestructor,addEventListener,gClipboard,LOG", code
            ).call(
                this, "cbinit-google-translate", "http://www.w3.org/1999/xhtml",
                () => {}, addEventListener, {read: readFromClipboard}, Cu.reportError
            );
            window.addEventListener("unload", this, {once: true});
        },
        handlers: [],
        handleEvent() {
            for(var args of this.handlers)
                args.pop().removeEventListener(...args);
            delete this.handlers;
        }
    }).init(() => {
    // Here's the code google-context-translate.uc.js
    // Google
    var langFrom_google_text = "auto"; //auto
    var langTo_google_text = "de"; 
         
    // Assign icons
    var mainicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADKElEQVR42p2TX2hTdxTHPzfJTW6T3qQmapvWabUbog+udp3kYeLQ4f6wiZQNtjlXHyZaBYe6TekYVGRQYexFscOtuD7UdWxzMtAXEbZStKIbDsaUCbVj9o8mTW+aNrlJbu5vJ8Ex2OMO/Lj87jnne873nO9PSyTV3tkAfYi5NhQ1MB1Ijc3ijN+D7CQh28YK+GHDMyxpjlJTkmAdQi5dWvOsUrYkGB5QC5Kcg/aFBxxqqycmcY38a/1yTqYgMw8ByfFKjtZ4V6myCeW8IApyfOw2155fw1DG4dOJJK1r45x5BPDUpZuMr2uXSuAvgBMQgOitjLJNn7iDSJP0rIJ35dt19TeGoi0Es1MMP72KFvm3+88phuYM3HCd3ObQizpa/cW7Kh020E0Tz1yOUxvjdIr7o6t/cLpkEJqZp7s5zN62ZewfnWLQ9VIIBqodBdI5tIbBG8oKhSAaJZDN8tpSP5+3L8eVgLbeAdKal7NH3mKL3FcOXCfV1ITjc7FLFrWZIlpt/4+qEA7hLRrCwk/RusOXu7ax8xHvGTkVgi/89As/T8ia9EUyghKOWSaYyqNx8oIiuEgcshetsooceibJinvTfNH1DpseD3LHSZE4eprs6k24NQaevI1fF8q5FJqv9xvlmFLdkKZlhb77E8TdIlFD54OOl3mzdXm1k+sP0jzbdwF7cRhsj8ysAWYnpYPeQfXPnn3JJG8/sZT+PW8gkuDbkWEiRh3b29dV/edujNE5dB4nHJSCUrQsTdP9mUKrCKHA5piHK+918quVp/VoD9W9uhGejNRx6+N9VZAmoTJZmhbK4vR7BGDPCQEQ/qU8R15aT2/Hi/R8PcyxyyMyVBmaXwIfPiTVf5yYHiF28ARpOyuqk3nJ4DV2HFc4SamUZ3vrGr7vPlitFNraQc4SzZZt6ptWMv3DAOdGrrGj7yvR+2KYr5A0BeCVAwqvBQuyMG+MTzp3cvj15/ivfXfzNq++/yFEIlD7GFjZ6uPRaE4oGuNQI68jIINJu0QbTFoadIJlL7lSgb8sxbSVEb8geUUVtkh55r50MY5Wec6jibV9/A9LjP7e9TdFQScjW9P1XAAAAABJRU5ErkJggg==";
    function GetXmlHttpObject(){
            if (window.XMLHttpRequest){ return new XMLHttpRequest();}
            if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");}
           return null;
           };
    var lc = navigator.lastClick = {};
    addEventListener("mouseup", e => {
       if (e.button) return;
       lc.X = e.screenX - mozInnerScreenX;
       lc.Y = e.screenY - mozInnerScreenY;
    }, false, gBrowser.tabpanels || 1);
    var createWindow = function(text, status, title, id, pos, size){
    var win = window, doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
       var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
       if(w)w.closeWin();
    // Close the pop-up window by clicking on the page (next 4 lines of code)
      gBrowser.addEventListener("click", function c() {
         this.removeEventListener("click", c );
         try { doc.getElementById(wId).closeWin() } catch(e) {};
      }, true );
       w = doc.createElementNS(xhtmlns, 'div');
        w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:2px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#eaeaea;padding-top:0px;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
       w.id = wId;
       w.closeWin = function(){
           doc.removeEventListener('keydown', keyDown, false);
           this.parentNode.removeChild(this);
       };
       w.addEle = function(str, style){
           var ele = doc.createElementNS(xhtmlns, 'div');
           ele.setAttribute('style', style);
           if(str){
               ele.innerHTML = str;
               for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                   el = all[i];
                   if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                       el.parentNode.removeChild(el);
                   }
                   else{
                       for(var att = el.attributes, j = att.length; j--;){
                           if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                       }
                   }
               }
           };
           return this.appendChild(ele);
       };
        w.addEle1 = function(str, style){
           var ele = doc.createElementNS(xhtmlns, 'textarea');
           ele.setAttribute('style', style);
           if(str){
               ele.innerHTML = str;
               for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                   el = all[i];
                   if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                       el.parentNode.removeChild(el);
                   }else{
                       for(var att = el.attributes, j = att.length; j--;){
                           if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                       }
                   }
               }
           };
           return this.appendChild(ele);
       };
       var img = doc.createElementNS(xhtmlns, 'div');
       img.setAttribute('style', 'display:block;float:right;width:22px;height:22px;padding:0;margin-top:2px;margin-right:1px;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAACXBIWXMAAArEAAAKxAFmbYLUAAABc0lEQVQ4y2P84mzGQBlgYaAYoBjBrKn79/plgnrQlCGM4Jwwj0lC6kdjKX5TmDV1Oeq7/7149r0gCcUIZk1dJgkpBgYGjvruXyvm/96wErt+fWOOylYGBgYmCSm4WxjhwQkxHsL+vW39r0Uz0f3s6M6eVsDAyMjAwIDsWEbkGGHW1OWoaGFgZ8c0BaH///8fHbV/L56BSzGiRSqztj5HWROaKcj6f86e+GffDmQtjJjpAs2Uf48f4NGP3Qg0U6AAh36cRkBNqWhmYGWDcH/OmoBVP77UySgmwcDCCucyyciTlsCRw4/hz28GVjZWr0AGBgbMmMZuBFr4/3/5nKOskYGdA5cp6GGBNf6YtfUhpmBNdShGsFjas+dVYI0/ZFN+zZ/2e+cmLEYgEjiO+MNlCtQI5Azyc1L7n2MHsQYzk4o6Z8tECBtuCjQ4/16//O/FM4KZ/d+dm99r8jlbJv69eRXdFSQVOUwq6v/u3CScOuladgIAhMrZgyTDTBwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');
       img.title = (win.navigator.language.indexOf('de') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
       img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
       w.appendChild(img);
       var title = w.addEle(title, 'display:table;color:#000;font:17px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
           title.onclick = e => {
           e.preventDefault();
           var url = e.target.href;
    // This is where we open the url the way we want
           var ctabpos = gBrowser.selectedTab._tPos +1;
           gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addWebTab(url), ctabpos);
           doc.getElementById(wId).closeWin();    
       }
       var cnt = w.addEle1(text, 'display:block;border:1px solid #aaa;padding-bottom:3px;padding-left:3px;background-color:#f2ffe6;color:#8c0023;font:24px Times New Roman;width:600px;height:200px;overflow:auto;cursor:text;-moz-user-focus:normal;-moz-user-select:text;');
       cnt.contentEditable="true";
       cnt.context="contentAreaContextMenu";
       w.addEle(status, 'display:table;font:14px Times New Roman;font-weight:bold;color:blue;width:auto;height:auto;padding-top:2px;margin:0 3px;cursor:pointer;');
       w.addEventListener('mousedown', function(e){
           if(e.target == w){
               e.preventDefault();
               var st = w.style;
               var mouseMove = e => {
                   st.top = parseInt(st.top) + e.movementY + "px";
                   st.left = parseInt(st.left) + e.movementX + "px";
               }
               doc.addEventListener('mousemove', mouseMove, false);
               doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
           }
       }, false);
       doc.documentElement.appendChild(w);
     
       if(size){
           cnt.style.height = size.height;
           cnt.style.width = size.width;
       }
       else{
           for(var i = 3; i < 10; i++){
               if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                   cnt.style.height = 80*i+'px';
                   cnt.style.width = 160*i+'px';
               }
               else break;
           }
       };
       var docEle = (doc.compatMode == 'CSS1Compat' && win.postMessage) ? doc.documentElement : doc.body;
       var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
       if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
       if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
       var hW = parseInt(w.offsetWidth/2);
       w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
       w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
       w.style.visibility = 'visible';
       doc.addEventListener('keydown', keyDown, false);
       return w;
    };
    var getHash = function (txt) {
       TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())');
       function sM(a) {
           var b;
           if (null !== yr)
               b = yr;
           else {
               b = wr(String.fromCharCode(84));
               var c = wr(String.fromCharCode(75));
               b = [b(), b()];
               b[1] = c();
               b = (yr = window[b.join(c())] || "") || ""
           }
           var d = wr(String.fromCharCode(116))
               , c = wr(String.fromCharCode(107))
               , d = [d(), d()];
           d[1] = c();
           c = "&" + d.join("") + "=";
           d = b.split(".");
           b = Number(d[0]) || 0;
           for (var e = [], f = 0, g = 0; g < a.length; g++) {
               var l = a.charCodeAt(g);
               128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
                   e[f++] = l >> 18 | 240,
                   e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224,
                   e[f++] = l >> 6 & 63 | 128),
                   e[f++] = l & 63 | 128)
           }
           a = b;
           for (f = 0; f < e.length; f++)
               a += e[f],
                   a = xr(a, "+-a^+6");
           a = xr(a, "+-3^+b+-f");
           a ^= Number(d[1]) || 0;
           0 > a && (a = (a & 2147483647) + 2147483648);
           a %= 1E6;
           return c + (a.toString() + "." + (a ^ b))
       }
       var yr = null;
       var wr = function(a) {
           return function() {
               return a
           }
       }
           , xr = function(a, b) {
           for (var c = 0; c < b.length - 2; c += 3) {
               var d = b.charAt(c + 2)
                   , d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d)
                   , d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
               a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
           }
           return a
       };
       return sM(txt);
    };
    // Translate text from the clipboard
    var ujs_google_translat = function (dir){
      var lng = 'de';
      var txt = gClipboard.read(); 
      var l = dir.split('|');
      var encTxt = encodeURIComponent(txt);
      var winWait = function(lng){createWindow('', (lng == 'de' ? 'Warten bis der Text übersetzt ist' : 'Wait, is going Translating')+'\u2026', 'Google Translate', '_gt', window.navigator.lastClick)};
       if (txt) {
       winWait(lng);
           var xhr = new XMLHttpRequest();
           var url = 'https://translate.google.com/translate_a/single?client=gtx&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);
           var urlt = "http://translate.google.com/translate_t?text="+encTxt+"&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt";
           xhr.open('POST', url, true);
           xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
           xhr.onreadystatechange = function() {
               try{
                   if (xhr.readyState == 4 && xhr.status == 200) {
                       var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0').replace(/\\n/g, "<br />"));
                       for(var i = 0, n; n = tmp[0][i]; i++){
                           if(n[0])result += n[0].toString();
                       };
                       status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase();
                       createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:22px Times New Roman;">Google Translate</a>', '_gt', window.navigator.lastClick);
                   }
               } catch (x){LOG(x)};
           };
           xhr.send('q=' + encodeURIComponent(txt));
       };
    };
    // Translate selected text
    function ujs_google_translate (){
       var lng = 'de';
       var txt = gContextMenu.selectionInfo.fullText;
       var encTxt = encodeURIComponent(txt);
       var winWait = function(lng){createWindow('', (lng == 'de' ? 'Warten bis der Text übersetzt ist' : 'Wait, is going Translating')+'\u2026', 'Google Translate', '_gt', window.navigator.lastClick)};
       if (txt) {
       winWait(lng);
           var xhr = new XMLHttpRequest();
           var url = 'https://translate.google.com/translate_a/single?client=gtx&sl=' + langFrom_google_text + '&tl=' + langTo_google_text + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);
           var urlt = "http://translate.google.com/translate_t?text="+encTxt+"&sl='  + langFrom_google_text + '&tl=' + langTo_google_text +'&hl=' + lng + '&eotf=0&ujs=gtt";
         
           xhr.open('POST', url, true);
           xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
           xhr.onreadystatechange = function() {
               try{
                   if (xhr.readyState == 4 && xhr.status == 200) {
                       var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0').replace(/\\n/g, "<br />"));
                       for(var i = 0, n; n = tmp[0][i]; i++){
                           if(n[0])result += n[0].toString();
                       };
                        status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + langTo_google_text.toUpperCase();
                        createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:22px Times New Roman;">Google Translate</a>', '_gt', window.navigator.lastClick);
                   }
               } catch (x){LOG(x)};
           };
           xhr.send('q=' + encodeURIComponent(txt));
        };
    };
    // Context menu for translation from clipboard  
    (function () {
    if ( document.getElementById("TranslateBufer") ) return; 
    var contextMenu = document.getElementById("contentAreaContextMenu");  
    var Item = document.createXULElement("menuitem");
          Item.setAttribute("label", "Translate from clipboard");
          Item.setAttribute("class", "menuitem-iconic");
          Item.setAttribute("image", mainicon);
          Item.addEventListener("command", function(){ujs_google_translat('auto|de')}, false);
       contextMenu.insertBefore(Item, document.getElementById("context-viewpartialsource-selection") ); 
       addDestructor(function() { contextMenu.removeChild( Item ) });
    })();
    
    // Context menu for text translation
       (function () {
           if ( document.getElementById("TranslateSelected") ) return;
           var contextMenu = document.getElementById("contentAreaContextMenu");
           var Item = document.createXULElement("menuitem");
           Item.setAttribute("id", "TranslateSelected");
           Item.setAttribute("label", "Translate selected text");
           Item.setAttribute("class", "menuitem-iconic");
           Item.setAttribute("image", mainicon);
           Item.addEventListener("command", function(){ujs_google_translate()}, false);
    
           contextMenu.insertBefore(Item, document.getElementById("context-viewpartialsource-selection") );
           addDestructor(function() { contextMenu.removeChild( Item ) });
    
           addEventListener("popupshowing", function() {
               Item.hidden = !gContextMenu.isTextSelected;
           }, false, contextMenu );
       })();
    });
    Alles anzeigen
  • FFX 138: Wo ist Firefox\Browser\Features abgeblieben?

    • lenny2
    • 5. Mai 2025 um 08:47

    Mozilla hat die Systemerweiterungen (Ordner \features\) vollständig aufgegeben. Einige Erweiterungen wurden nach omni.ja verschoben, einige wurden entfernt https://bugzilla.mozilla.org/show_bug.cgi?id=1938155

  • Firefox v136.0a1 - Skript „copyURL“ funktioniert nicht mehr

    • lenny2
    • 2. Mai 2025 um 14:30

    Danke, ich verstehe. Die "Clip url" Erweiterung hat genau die gleiche Funktionalität.

  • userChrome.js Scripte für den Fuchs (Diskussion)

    • lenny2
    • 2. Mai 2025 um 10:44

    Bitte probieren Sie ein nützliches kleines Skript für Monkey aus.

    JavaScript
    // ==UserScript==
    // @name        Google Search Numbering
    // @description Makes Google search results numbered
    // @namespace   Greasymonkey Scripts
    // @icon        https://www.google.com/favicon.ico
    // ==/UserScript==
    function numberHeadings() {
       let h3s = document.getElementById('rso').getElementsByTagName('h3');
       let count = 1;
       for (let i = 0; i < h3s.length; i++) {
           if (h3s[i].innerText === 'Map' || h3s[i].getAttribute("role") === "heading") {
               i += 1; 
               continue;
           }
           h3s[i].innerText = (count++) + '. ' + h3s[i].innerText;
       }
    }
    numberHeadings();
    Alles anzeigen

  • Firefox v136.0a1 - Skript „copyURL“ funktioniert nicht mehr

    • lenny2
    • 2. Mai 2025 um 10:37
    Zitat von milupo

    ich habe hier obiges Skript angepasst (.jsm nach .sys.mjs).

    Hallo, dieses Skript funktioniert nicht wieder, v139.0beta2 :(

  • Tab Schließen Javascript

    • lenny2
    • 2. Mai 2025 um 08:12
    Zitat von milupo

    Probiere mal diese Version:

    v139.0b1. Auf der Einstellungsfenster verschiebt sich der Trenner je nach Klickpunkt. Um das Problem zu reproduzieren, klicken Sie mit der rechten Maustaste an verschiedene Stellen auf der Einstellungsfenster. Es ist besser, die Option für die Einstellungsfenster vollständig zu entfernen.

  • #alltabs-button Hintergrundfarbe Menü ändern

    • lenny2
    • 1. Mai 2025 um 13:09
    Zitat von MarketMaker

    #alltabs-button ändern?

    Mit Tab-Zähler

    CSS
    /* userChrome.css */  
    #alltabs-button {  
       display: -moz-box !important;  
    }  
    /* tab counter */  
    #TabsToolbar-customization-target {  
       counter-reset: tabCount;  
    }  
    .tabbrowser-tab {  
       counter-increment: tabCount;  
    }  
    #alltabs-button > .toolbarbutton-badge-stack > .toolbarbutton-icon {  
       visibility: collapse !important;  
    }  
    #alltabs-button > .toolbarbutton-badge-stack {  
       position: relative !important;  
    }  
    #alltabs-button > .toolbarbutton-badge-stack::before {  
       content: counter(tabCount);  
       border-bottom: 1px solid var(--toolbarbutton-icon-fill);  
       color: var(--toolbarbutton-icon-fill);  
       opacity: var(--toolbarbutton-icon-fill-opacity);  
       position: absolute;  
       bottom: var(--toolbarbutton-inner-padding);  
       left: 50%;  
       transform: translateX(-50%);  
       padding: 0 3px;  
        color: orange !important;                /* digit color */
        background-color: blue; !important;        /* background color */
    }
    /* CSS by 2002Andreas */
    #allTabsMenu-allTabsView > .panel-subview-body {
     background-color: red !important;
     color: white !important;
     font-size: 22px !important;
    }
    Alles anzeigen
  • Profilordner.uc.js und RestartFirefoxButtonM.uc.js

    • lenny2
    • 30. April 2025 um 08:24
    Zitat von geldhuegel

    bei mir funktioniert das Script für den Aufruf des Profilordners leider nicht mehr.

    Funktioniert, v138

    JavaScript
    // Open_Profiles_Folder.uc.js
    try {
       CustomizableUI.createWidget({
           id: "openfolder-profiles",
           label: "Profiles Folder",
           tooltiptext: "Open Profiles Folder",
           defaultArea: CustomizableUI.AREA_NAVBAR,
        onCreated: btn => btn.image = "data:image/gif;base64,R0lGODlhEAAQAOZMAP/////MAF06AJhlAJNgAP//AP/lAP/UAJViAP/JANShAJRhAP/OAJRgAOy5AMaSAP/nAMyZAP/IAP/NAOazAP/RAMmVALaAAH5TAJNfAM2aAP/dT//XOv/KAOPOkMeRAP/nhOSxAOu4AP3KAOrTkv/nrv//1c6bAKdyAP/TAP/bPdWsMr6LA7iCALqGALiEAJNeAMCMAP/gcv/eYdGdAP/TEP/mgv/2y//gg/3JAP/ila97AP/aKsWPAJFbAJZgALeBAMiVAPC9AP/rOum2AHlQAP/4zP//z//jPpNdAP/LANixNP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEwALAAAAAAQABAAAAefgEyCg4SFhoeFDQ0LjIiCCyU5IwEBBAiXCAOEBDohFBREIg6jQgibODQKqgonDz0fPkkwDQMEMhYRERpBMUsAv8C1Mw8uLUAXKwA2EgkJDJoEGy8swAAgCZQMz0wEKigkN8wJHZQBFZrcPDsAHErllBMT6AQ1HkYVKQf6++hMGUgAhhgYSBAChH4/TBwpwLAhw35MMAiYSLFiEUcYmQQCADs=",
        onCommand: function(event) {
            Services.dirsvc.get("ProfD", Ci.nsIFile).launch();
    }
       });
    } catch(e) {}
    Alles anzeigen
  • Profilordner.uc.js und RestartFirefoxButtonM.uc.js

    • lenny2
    • 30. April 2025 um 06:10
    Zitat von geldhuegel

    bei mir funktioniert das Script für den Aufruf des Profilordners leider nicht mehr.

    Verfügt über keine Button, funktioniert über Hotkeys

    JavaScript
    // OpenProfileFolder(Alt+P).uc.js
    (function(win){
       function openProfileDirectory() {
           Components.classes["@mozilla.org/file/directory_service;1"]
                 .getService(Components.interfaces.nsIProperties)
                 .get("ProfD", Components.interfaces.nsIFile)
                 .launch();
       }
       if(typeof win.openProfileDirectory == 'undefined') {
           win.openProfileDirectory = openProfileDirectory;
           win.addEventListener('keydown', function(e) {
               if (e.altKey == true && e.keyCode == 80) {
                   e.preventDefault();
                   openProfileDirectory();
               }
           }, false);
       }
    })(window);
    Alles anzeigen
  • Profilordner.uc.js und RestartFirefoxButtonM.uc.js

    • lenny2
    • 30. April 2025 um 04:48
    Zitat von geldhuegel

    Auch das Script RestartFirefoxButtonM.uc.js hat keine Wirkung mehr.

    Hier sind funktionierende Restart-Skripte

  • Skripte funktionieren nicht mehr

    • lenny2
    • 29. April 2025 um 14:02
    Zitat von seipe

    Habe gerade gesehen, daß ein weiteres Script nicht mehr funktioniert.

    Diese funktionieren.
    Restart Button in toolbar RE: Firefox 136 - Restart Button Script geht nicht mehr
    Restart Button in hamburger RE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr

Unterstütze uns!

Jährlich (2025)

92,9 %

92,9% (604,17 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon