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. Tanni

Beiträge von Tanni

  • OpenWith.uc.js für explorer.exe

    • Tanni
    • 18. Februar 2020 um 19:49

    naja, die möglichkeit die es gibt - über policies.json - hast du ja schon für dich schon ausgeschlossen.

    darüber hinaus ist die funktionalität aus sicherheitsgründen von mozilla unterbunden. ich denke das ist auch gut so, da man weiß das der durchschnittsuser alles anklickt, was klickbar ist.

    eine alternative die ich seit jahren nutze, ist ein autohotkey-script das mittels eines eigenen "network.protocol-handler" in firefox jeden gewünschten pfad an den windows-explorer übergeben kann. aber das benötigt halt ein externes script oder eine kompilierte exe.

    bei eigenen webseiten kannst du so ein eigenes definiertes protokoll(z.B. explorer://C:\path\path) mit angeben. bei fremden webseiten wäre dann die möglichkeit mit einem userscript das protokoll von aussen einzubauen.

  • Wie kann ich in einem Script den Pfad des aktuellen Profil-Verzeichnisses ermitteln?

    • Tanni
    • 4. Oktober 2019 um 16:59

    wenn du restart_icon als variable definierst, musst du es auch als variable und nicht als string wieder einbinden.

    ersetze zeile 32:

    Code
    style: 'list-Style-image: restart_icon',

    durch

    Code
    style: 'list-style-image:' + restart_icon,
  • Wie kann ich in einem Script den Pfad des aktuellen Profil-Verzeichnisses ermitteln?

    • Tanni
    • 3. Oktober 2019 um 10:59

    zum einen ist currenticon nirgendwo definiert. ausserdem fehlen mehrere semikola und anführungszeichen.

    ersetze

    Code
    var beenden_icon = ("file:" + "///" + currentProfileDirectory + "/chrome/icons/beenden.png")
    alert(beenden_icon)
    aNode.style.listStyleImage = 'url(currenticon)';

    durch

    Code
    var beenden_icon = 'url("file:///' + currentProfileDirectory + '/chrome/icons/beenden.png")';
    alert(beenden_icon);
    aNode.style.listStyleImage = beenden_icon;
  • Auto-Login Script

    • Tanni
    • 30. März 2019 um 22:58

    Probier mal ob das bei dir läuft:

    Code
    // ==UserScript==
    // @name          camp-firefox.de Autologin
    // @description   Auto Login for camp-firefox.de
    // @include       *//*camp-firefox.de*
    // @grant         none
    // ==/UserScript==
    
    
    window.setTimeout(function() {
    
    
      var myLogin = "Username";		/* DeinUsername  */
      var myPass  = "Password";		/* DeinPasswort  */
      var myAutologin = true;		/* true OR false */
      var myViewonline = true;		/* true OR false */
    
    
      var un = document.getElementById('username');
      if (un) {un.value=myLogin;}
      var pw = document.getElementById('password');
      if (pw) {pw.value=myPass;}
      var al = document.getElementById('autologin');
      if (al) {al.checked=myAutologin;}
      var wo = document.getElementById('viewonline');
      if (wo) {wo.checked=myViewonline;}
      var sub = document.forms[1]["login"];
      if (sub) {sub.click();}
    
    
    }, 1000);
    Alles anzeigen
  • ContextTranslate aktualisiert

    • Tanni
    • 18. Februar 2018 um 13:15

    Mir ist eine andere Idee für deepl.com eingefallen, die zwar bisschen arg "dirty" ist, aber dafür sehr einfach umzusetzen ist. Und trotzdem ein Ansatz der schonmal funktioniert.

    Ich übergebe den Text im userchrome-Script genauso als Parameter wie beim obigen Google-Script. Dann übernimmt aber vorläufig ein Greasemonkey-Script die Eingabe auf der deepl.com Website. Alle möglichen Sonderzeichen müssen noch ersetzt/umgewandelt werden. Aber es soll ja nur ein erster Ansatz sein.

    Vielleicht können wir ja zusammen ein handelbares Script draus bauen. Bei dem LiveCSS Tool-Script fand ich cool was aus der ersten Idee gewurden ist.

    Hier mal die 2 Scripte die als Ausgangslage benötigt werden.

    Das userchrome-Script: DeeplComTranslate.uc.js

    Code
    (function () {
    	if (location != 'chrome://browser/content/browser.xul')
    		return;
    	/* ***************************************************************************************************************** */
    	let translate = function () {
    		let mm = gBrowser.selectedBrowser.messageManager;
    		mm.addMessageListener('getSelection', function listener(message) {
    			let t = (message.data !== '');
    			let e = (document.charset || document.characterSet);
    			let txt = message.data.replace(/ /g, '+');
    			if (t) {
    				gBrowser.loadOneTab('https://www.deepl.com/translator?t=' + txt, null, null, null, false, false);
    			} else {
    			alert("Vollseiten-Übersetzung wird von deepl.com noch nicht unterstützt.");
    			};
    			mm.removeMessageListener('getSelection', listener, true);
    		});
    		mm.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true);
    	}
    	/* ***************************************************************************************************************** */
    	let menuitem = document.createElement('menuitem');
    	menuitem.id = 'context-deepltranslate';
    	menuitem.setAttribute('label', 'DeeplTranslate');
    	menuitem.setAttribute('tooltiptext', 'DeeplTranslate');
    	menuitem.setAttribute('oncommand', '(' + translate.toString() + ')()');
    	menuitem.classList.add('menuitem-iconic');
    	menuitem.style.listStyleImage = 'url("https://www.deepl.com/img/favicon/favicon_16.png")';
    	let refItem = document.getElementById('context-inspect');
    	refItem.parentNode.insertBefore(menuitem, refItem);
    	/* ***************************************************************************************************************** */
    })();
    Alles anzeigen

    Das Greasemonkey-Script

    Code
    // ==UserScript==
    // @name         Deepl.com Translator
    // @author       www.camp-firefox.de
    // @description  Deepl.com Translator
    // @include      https://www.deepl.com/translator*
    // ==/UserScript==
    //**********************************************************************************************//
    var match = /t=([^&#=]*)/.exec(window.location.search);
    var t = match[1];
    t = t.split('+').join(' ');
    document.getElementsByClassName("lmt__textarea lmt__source_textarea lmt__textarea_base_style")[0].value = t;
    //**********************************************************************************************//
    Alles anzeigen

    Falls es hier nicht richtig reinpasst, kann man das ja auch als eigenen Thread abtrennen.

  • ContextTranslate aktualisiert

    • Tanni
    • 17. Februar 2018 um 20:03

    Endor
    Ja sicher doch, kannst du gerne tun. :)

    @all
    Lustig, die Übersetzung über deepl.com hinzubekommen, war auch meine ursprüngliche Motivation, warum ich markierten Text weiterverarbeiten wollte.
    Ich habe mit Google angefangen, da die das schön einfach gelöst haben. Man übergibt dort einfach seinen Wunschtext als Parameter an die Webseite und den Rest erledigt die Google-Webseite.

    deepl.com macht das nicht so einfach möglich, da dies sicherlich über kurz oder lang oder jetzt schon deren Geschäftsmodell ist/wird. Die stellen eine API zur Verfügung, und dann kann jeder seine Wunsch-GUI drum rumbauen. Muss dafür aber sicher eine Lizenz besitzen(ich habe es nicht weiter recherchiert).

    Aktuell gibt die Webseite http://deepl.com/translator den Wunschtext an http://www.deepl.com/jsonrpc weiter. Dort wird übersetzt. Ein Javascript holt den übersetzten Text dann wieder in http://deepl.com/translator zurück und verknüpft ihn dann auch noch mit Abfragen von dict.deepl.com.

    Es ist kein Problem seinen Text über z.B. ein PHP-Script mit Curl an http://www.deepl.com/jsonrpc zu posten und eine Antwort mit der bzw. mehreren Übersetzungen zu erhalten. Diese müsste man dann aber weiterverarbeiten. Z.B. in einer eigenen Webseite einbetten oder in ein HTML-Gerüst im userchrome Script was wie ein Popup agiert einbauen. Dabei hätten man noch immer nicht die kleinen netten Gimmicks von deepl.com wie z.B. die Alternativübersetzungen. Vermutlich könnte man auch direkt für http://deepl.com/translator mittels injiziertem Javascript den Text zurückholen....

    In jedem Fall ist es kompliziert und wesentlich aufwendiger umzusetzen. Vorallem wahrscheinlich nicht als reine userchrome-Scriptlösung. Oder irgendwer hat noch einen ganz anderen Ansatz/Idee an die Sache ranzugehen.

  • ContextTranslate aktualisiert

    • Tanni
    • 17. Februar 2018 um 09:00

    Son Goku
    Wenn du Notepad++ nutzt und Umlaute nutzen möchtest, speichere das Script mit der Kodierung "UTF-8 ohne BOM". Dann musst du auf Umlaute keine Rücksicht nehmen. Alternativ ändere die Umlaute in Unicode um.

  • ContextTranslate aktualisiert

    • Tanni
    • 16. Februar 2018 um 17:48

    Zum übersetzen von markiertem Text oder ganzen Seiten gibt es ja schon reichlich sehr gute Extensions oder auch hier im Board ein einfaches aber funktionales Google-Bookmarklet.

    Als Grundlage zum weiteren Verarbeiten von markiertem Text habe ich trotzdem versucht ContextTranslate aus der Sammlung wieder zum laufen zu bringen. Wer mag, kann es gerne nutzen.

    Code
    (function () {
    	if (location != 'chrome://browser/content/browser.xul')
    		return;
    	let translate = function () {
    		let browserMM = gBrowser.selectedBrowser.messageManager;
    		browserMM.addMessageListener('getSelection', function listener(message) {
    			let t = (message.data !== '');
    			let e = (document.charset || document.characterSet);
    			if (t) {
    				gBrowser.loadOneTab('http://translate.google.com/translate_t?hl=de-DE#auto|de-DE|' + message.data, null, null, null, false, false);
    			} else {
    				gBrowser.loadOneTab('http://translate.google.com/translate?u=' + gBrowser.currentURI.spec + '&hl=de-DE&ie=' + e + '&sl=auto&tl=de-DE', null, null, null, false, false);
    			};
    			browserMM.removeMessageListener('getSelection', listener, true);
    		});
    		browserMM.loadFrameScript('data:,sendAsyncMessage("getSelection", content.document.getSelection().toString())', true);
    	}
    	let menuitem = document.createElement('menuitem');
    	menuitem.id = 'context-googletranslate';
    	menuitem.setAttribute('label', 'GoogleTranslate');
    	menuitem.setAttribute('tooltiptext', 'GoogleTranslate');
    	menuitem.setAttribute('oncommand', '(' + translate.toString() + ')()');
    	menuitem.classList.add('menuitem-iconic');
    	//Wer kein Icon möchte kann die nächsten beiden Zeilen auskommentieren/löschen
    	//menuitem.style.listStyleImage = 'url("https://translate.google.com/favicon.ico")';
    	menuitem.style.listStyleImage = ' url("data:image/png;base64,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")';
    	let refItem = document.getElementById('context-inspect');
    	refItem.parentNode.insertBefore(menuitem, refItem);
    })();
    Alles anzeigen
  • Lesezeichen "Mobile Lesezeichen" lässt sich nicht löschen

    • Tanni
    • 3. Februar 2018 um 14:57

    Da ich kein Sync nutze, könnte das eine Erklärung sein, warum es bei mir ohne Probleme und immer wieder klappt.

    EDIT:
    Ich sehe gerade ihr hattet das Thema wie Sören erwähnte schonmal hier in der Diskussion.
    Und da steht es geschrieben:

    Code
    // Set by sync after syncing bookmarks successfully once.
      MOBILE_BOOKMARKS_PREF: "browser.bookmarks.showMobileBookmarks",

    Was mich trotzdem wundert, ist das die Änderung über CSS nicht funktionieren soll. Aber deswegen aktiviere ich ganz sicher nicht Sync um das zu testen.... :lol:

  • Wetterfuchsbutton Script für userChrome.js

    • Tanni
    • 3. Februar 2018 um 14:41
    Zitat von Sören Hentzschel


    Ich bin nur über die Fehlermeldung "ReferenceError: Cc is not defined" überrascht, denn erstens sehe ich diese Fehlermeldung nicht in Zusammenhang mit dieser Änderung, zweitens erhalte ich eine andere Fehlermeldung:

    Code
    TypeError: Argument 1 of Range.selectNodeContents is not an object


    Ich habe das Script bisher nie genutzt. Kann aber bestätigen das ich hier die selbe Fehlermeldung in der Konsole habe.

  • Lesezeichen "Mobile Lesezeichen" lässt sich nicht löschen

    • Tanni
    • 3. Februar 2018 um 14:28

    Ok, dann ist es offenbar unterschiedlich. Habe ich halt Glück. ;)

  • Lesezeichen "Mobile Lesezeichen" lässt sich nicht löschen

    • Tanni
    • 3. Februar 2018 um 14:07

    @Sören
    Welche manuelle Änderung meinst du jetzt? Den Wechsel in about:config?
    Bei mir im FF58.0.1 (64-Bit)Portable kann ich in about:config die Anzeige immer sofort ein-/ausschalten.
    Und wenn ich den Eintrag auf true stelle, ist er nach dem Neustart wieder true. Mit false ist natürlich dann auch wieder false.

    Bei Eintrag true kann ich aber mit dem userChrome.css Eintrag trotzdem wie gewünscht ausblenden.

  • Lesezeichen "Mobile Lesezeichen" lässt sich nicht löschen

    • Tanni
    • 3. Februar 2018 um 13:02

    Solltest du noch eine alte Firefox-Version haben, würde ich updaten.
    Wenn es ein anderes Problem ist, versuche den Eintrag einfach in der userChrome.css auszublenden.

    Code
    #BMB_mobileBookmarks, #menu_mobileBookmarks {
    	display:none!important
    }
  • Updates prüfen Button

    • Tanni
    • 1. Februar 2018 um 18:33

    Ich sag hier auch mal danke.
    Ein weiteres Script was mir diese LoadFrameScript Technik vielleicht doch noch irgendwann verständlich und nachvollziehbar macht.

  • Wird userChromeJS weiterentwickelt?

    • Tanni
    • 1. Februar 2018 um 18:27

    Ich danke euch allen für die Informatíonen und auch die weiterführenden Links.

    Wenn euch die andere Umsetzung bekannt ist und ihr sie gegengecheckt habt, bin ich schon zufrieden. :D
    Die Beschreibung, das diese in der Vergangenheit anfälliger gegen Codeänderungen von Mozillaseite war, ist alleine schon ein wichtiges Argument. Notwendige Änderungen von Scripten durch Updates von Mozilla mit Aborix Unterstützung habe ich in der recht kurzen Zeit, die ich sie nutze nicht einmal mitbekommen. Also sogesehen spricht das schon mal für sich.

    Wenn die hiesige Umsetzung dann auch noch die modernste ist, um so besser. Erst Recht wenn sie mit den wenigsten notwendigen externen Eingriffen verbunden ist. Die sind bei der anderen durchaus weitreichender.

    Unabhängig davon muß ich zustimmen das Scripte von diesem Alice - aber auch anderen - oft allein wegen ihrer Größe mich eher abschrecken, sie nachvollziehen zu wollen. Da ist es bei den oft kompakten Scriptsnippets und Fertigskripten von Aborix, eher so das ich auch mal versuche ein ganzes Script komplett zu verstehen.

    Was mich aber immer noch interessiert und ich bisher zuwenig verstanden habe:
    Nutzen die verschiedenen Umsetzungen alle exakt die gleiche Lücke(?) aus um Scripte zu laden. Oder gibt es da Unterschiede?
    Ist es überhaupt eine Lücke? Ich denke mal ein Hack ist es eher nicht. Oder doch?

    Was aus meiner Sicht trotzdem wünschenswert für die Zeit bleibt, in der die Unterstützung noch funktioniert, wäre eine bessere Verwaltung der Scripte. Eine Umsetzung als eigenes Script mit Menuauflistung wäre ja analog "extras_config_menue.uc.js" sicher machbar. So eine Togglefunktion zum ein-und ausschalten wäre dagegen Luxus, wobei sich die Frage des Aufwandes stellt, für die noch verbleibende Zeit.

    Mir persönlich wäre für die eigene Ordnung schon gedient, wenn ich verschiedene Verzeichnisse für Scripte gleichzeitig importieren könnte. Es gibt einige Scripte z.B. Restart die möchte ich in einem eigenen Ordner lagern, weil sie einfach in meinen Augen zur Firefox-Grundausstattung gehören. Andere an denen ich bastle und die auch länger mal noch nicht funktionieren möchte ich getrennt lagern. Hat das eventuell schon wer versucht und hinbekommen? Die Readme.txt hilft mir da nicht wirklich weiter.


    Boersenfeger
    Du scheinst ein Mann weniger Worte zu sein. Für mich leider zu wenig um zu verstehen was du wirklich sagen möchtest.

    EDIT: Der Wunsch des gleichzeitigen Ladens aus verschiedenen Verzeichnissen klappt doch. Sehr gut dann kann ich die Scripte schonmal lokal in Gruppen sortieren.

  • Wird userChromeJS weiterentwickelt?

    • Tanni
    • 31. Januar 2018 um 19:56
    Zitat von Boersenfeger


    .. es läuft doch wunderbar mit Aborix Scripts..

    Ja sicher das tut es wunderbar. Aber was spricht dagegen, zu beobachten was andere machen und ggf. deren möglicherweise gute Ideen zu adaptieren.

    Mir fehlt außerdem das Wissen einzuschätzen, was die beiden Varianten technisch unterscheidet. Daher würde mich da z.B. Aborix Einschätzung zum Vergleich der beiden Umsetzungen interessieren. Vielleicht gibt es ja zwischen beiden auch Unterschiede bezüglich möglicher Zukunftsfähigkeit.

    Ich finde es einfach interessant sich darüber auszutauschen.

    Zitat von Boersenfeger


    warum also was anderes nutzen?
    https://www.camp-firefox.de/forum/viewtopi…037740#p1037738


    PS: Warum nutzt du eigentlich nicht mehr Firefox 48? Der lief doch auch wunderbar.... ;)

  • Wird userChromeJS weiterentwickelt?

    • Tanni
    • 31. Januar 2018 um 16:53

    Ich bin auf eine alternative userChromeJS-Unterstützung gestoßen.
    Was das Thema Verwaltung/Handling der Scripte betrifft, ist man da über ein Script ein sehr schönes Stück weiter. Und das Thema restartloses Laden ist dort auch schon teils gelöst.

    Daher meine Frage: Gibt es aktuell Überlegungen die - ich nenne sie mal Aborix-Unterstützung - noch in irgendeine Richtung weiter auszubauen?

    Wahrscheinlich kann das so wohl nur Aborix beantworten?

    Macht es hier Sinn vielleicht irgendwie Funktionen zu "mergen" bzw. Ideen abzuschauen?

    PS: Auf der Seite finden Sich außerdem auch ein paar andere coole Scripte.

  • Greasemonkey

    • Tanni
    • 28. Januar 2018 um 20:13

    Greasemonkey nutze ich persönlich auch schon viele Jahre. Und es gibt da auch noch Alternativen wie Tampermonkey oder Violentmonkey. Der große Unterschied dieser Extensions zu den UserChrome Scripten ist, das erstere NUR Webseiteninhalte ändern können.

    Bei UserChrome Scripten kann man - noch - zusätzlich das Userinterface des Firefox ändern. Webseiteninhalte kann man damit ebenfalls verändern. Es haben also beide Varianten - je nach Gusto - ihre Berechtigung.

  • Firefox 58: Runde Tabs vs. Trennlinie

    • Tanni
    • 27. Januar 2018 um 13:55

    Test mal zusätzlich diesen Eintrag:

    CSS
    .tabbrowser-tab::after, .tabbrowser-tab::before {
    	border-left: none !important;
    }
  • Tabs mit einem x schließen

    • Tanni
    • 26. Januar 2018 um 18:36
    Zitat von Stuffel


    @ Tanni, erstmal Danke für deine Mühe. Das Script funktioniert aber nicht. Bist Du sicher das es für macOS geeignet ist.


    Nein bin ich mir nicht.
    Ich kann es auch mangels macOS vor Ort nicht testen. Weiss aber dass das Script bei meinem Windows seinen Dienst tut.
    Funktionieren denn andere Scripte bei Dir?

    Wichtig ist aber das die Extension bei dir funktioniert. :)
    Wenn du die Close-Buttons der Tabs noch wegbekommen willst, müsste folgender Eintrag in der userChrome.css genügen.

    CSS
    #tabbrowser-tabs .tabbrowser-tab .tab-close-button { 
    	display:none!important;
    }

Unterstütze uns!

Jährlich (2025)

82,4 %

82,4% (535,86 von 650 EUR)

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