Beiträge von EffPeh
-
-
im Prinzip macht es das was ich brauche nach Einstellung, aber dafür eine WE installieren ...
ich dachte es würde einfach mit nem Script werden
[...]
Das macht doch keinen Unterschied. Ein WE ist auch nichts weiter als ein Script und hat den Vorteil, dass es besser gewartet/aktualisiert werden kann. :wink: -
Ja, in der about:config (Siehe https://support.mozilla.org/de/kb/konfigur…tor-fur-firefox ).
Suchergebnis in einem neuen Tab öffnen:
browser.search.openintab > true
Anmerkung: Wobei das bei mir in Version 61.0b5 so nicht mehr funktioniert.
Klicke ich auf den Pfeil rechts des Eingabefeldes, wird das Suchergebnis im aktuellen Tab geöffnet, drücke ich die Return-Taste, in einem neuen.Lesezeichen in einem neuen Tab öffnen und den gerade geöffneten Tab fokusieren:
browser.tabs.loadBookmarksInTabs > trueLesezeichen in einem neuen Tab öffnen, aber im Hintergrund:
browser.tabs.loadBookmarksInBackground > trueLinks in einem neuen Tab rechts vom aktuellen Tab öffnen:
browser.tabs.insertRelatedAfterCurrent > trueURLs, die in die Adressleiste eingegeben werden, automatisch in einem neuen Tab öffnen: (Ab Version 60, glaube ich)
browser.urlbar.openintab > trueFerner: (Sorry, kein Bock zum Übersetzen
)
(A) browser.link.open_newwindow - for links in Firefox tabs
3 = divert new window to a new tab (default) <= This should already be set; if it's not, right-click > Reset to restore the default
2 = allow link to open a new window
1 = force new window into same tab(B) browser.link.open_newwindow.restriction - for links in Firefox tabs
0 = apply the setting under (A) to ALL new windows (even script windows) <= Try this one
2 = apply the setting under (A) to normal windows, but NOT to script windows with features (default)
1 = override the setting under (A) and always use new windows(C) browser.link.open_newwindow.override.external - for links in other programs
-1 = apply the setting under (A) to external links (default) <= this should already be set; if it's not, right-click > Reset to restore the default)
3 = open external links in a new tab in the last active window
2 = open external links in a new window
1 = open external links in the last active tab replacing the current pageAlle Angaben ohne Gewähr... :wink:
-
Quelltext in einem externen Editor öffnen - ändere diese Werte unter about:config wie folgt:view_source.editor.external auf true
view_source.editor.path - Gib den Pfad zum Editor ein.Funktioniert hier im 61.0b5 nicht mehr.
Welche Version benutzt du gerade? -
Ups. Da habe ich wohl nicht aufgepasst. :roll:
-
Na, dann bin ich ja doch noch lernfähig. Zumindest halbwegs.
So habe ich mir gestern dann - nach der async-Lektüre bei MDN - auch die entsprechende Funktion in der option.js erklärt.
Wobei ich da auch erst einmal kapieren musste, dass du dort für storage Defaultwerte vorgibst. Ist natürlich echt praktisch. So findet man das aber nicht in den storage-Beispielen auf MDN.
Das ist mein grosses Problem mit MDN. Es gibt zwar Beispiele, aber die sind oft abstrakt und theoretisch. Die Beispiele funktionieren. Aber in der Praxis und in der Anwendung stellen sich dann oft Fragen, zumindest für mich als Autodidakten. Das ging mir mit async dort auch so. Zumal Promise auch Neuland für mich ist. -
Gibt es eigentlich ein GitHub-Repository, um sich Fortschritte am Code ansehen zu können?
Öööhm - Nö.
Ich hatte da zwar mal vor vielen Jahren einen Account - ich glaube, wegen einem jQuery-Plugin, das ich gescriptet hatte - aber da kenne ich die Zugangsdaten nicht mehr. Ich kenne mich aber eh mit GitHub nicht aus.
Ich will ja auch keine Wissenschaft aus der Sache machen.Gestern habe ich mir die async/await-Sache angeschaut. So richtig verstanden habe ich das immer noch nicht. Glaube ich. Aber ich habe mich stark an deinem Script orientiert und erfolgreich meine options.js (mit momentan nur einer Einstellung zum Testen) angelegt.
Ausserdem habe ich mein popup.js nochmal komplett überarbeitet und das so angelegt wie ich es bei dir gesehen habe.
Und ich habe chrome-Seiten beim Ermitteln der Favicons ausgeschlossen. Bisher kam diese Fehlermeldung auch nicht mehr.Ich hänge die aktuelle Version mal an.
[attachment=0]extension.zip[/attachment]
-
Meinst du die Einstellung, die es früher unter "Erweitert > Netzwerk" (glaube ich) gab?
Die gibt es meines Wissens nach nicht mehr. Ich halte es aber auch nicht für sonderlich sinnvoll, das zu ändern.
Wenn es aber unbedingt sein muss, kann man das noch in der about:config deaktivieren.
Wenn man den Schalter browser.cache.disk.enable auf false setzt, sollte der Cache abgeschaltet sein. Falls dieser Schalter noch eine Wirkung zeigt und nicht nur ein Relikt ist. :wink: -
Dankeschön für die Erklärung, Sören.
Ich merke schon: ich bin so was von oldskool... -
-
Ich danke euch für das Feedback.
Eine alternative Bedienung wäre hilfreich - so etwas wie eine mittlere Maustaste existiert bei mir nicht.
Ja, ich habe gehört, das es solche Mäuschen geben soll.
Gut, dass da oben in der Leiste noch Platz für weitere Funktionen ist.
Oder vielleicht doch so ein kleines PopUp-Menü mit Funktionsicons? Hm...
Ein weiteres Problem, welches mir aufgefallen ist: Unter "Kürzlich geschlossene Tabs" sind erwartungsgemäß die kürzlich geschlossenen Tabs zu finden. Schließe ich aber einen Tab und drücke dann Cmd + Shift + T, um den Tab wiederherzustellen, ist die Liste unter "Kürzlich geschlossene Tabs" plötzlich komplett leer.
Kann ich hier jetzt nicht nachvollziehen, alles gut. Habe ich bisher nicht beobachtet. Aber ich sitze hier vor einem Windows.
Ich werde es auf jeden im Auge behalten.
Das könnte https://bugzilla.mozilla.org/show_bug.cgi?id=1396758 sein - das Event wird abgefeuert, *bevor* die Aktion passiert. Insofern schätze ich, dass der Workaround mit dem Timeout das beste ist, was du momentan machen kannst.
Ja, das klingt genau nach dem, was mich stört.
Okay, dann doch mit dem Workaround. In der Praxis merkt man die Verzögerung eh kaum.
Wann erhältst du den Fehler? Mir ist das jetzt noch nicht aufgefallen.
Direkt nach dem Laden. Es ist auch immer nur diese eine Constante. :-??
Das lässt sich einfach prüfen: Erscheint der Fehler noch, wenn du den Teil mit den Favicons weglässt?
Öhm, ja, hätte ich auch selbst drauf kommen können, nüch... :roll:
Auf jeden auch ein Dankeschön für die Links. Das gibt mir wieder einiges zu denken...
async? What is it goody for? I'll think about...
[...]Tab-PopUpliste sollte schließen beim Öffnen des ausgesuchten Tabs)[...]
Ja, schauen wir mal...
Ist zwar mein Erstlingswerk, aber ich denke schon, das ich es dann veröffentliche.
Das kann aber noch bissel dauern, weil ich noch ein paar Ideen habe und auch viel ausprobiere.
Dein Post hat mir übrigens schon geholfen, denn die Anmerkung mit dem Schliessen des PopUps ist eine weitere Frage, - die mir aber wieder entfallen war - , auf die ich noch keine Antwort habe.
Das nervt nämlich schon ein wenig, wenn es nicht von selbst schliesst bzw. erst, wenn es den Fokus verliert. -
Ging wohl verloren... :wink:
[attachment=0]extension.zip[/attachment] -
Wie ich schon in Sörens thread [PREVIEW] Enterprise Policy Generator geschrieben habe, beschäftige ich mich gerade mit meiner allerersten Extension.
Kurzer Umriss:
Die Extension erstellt eine Liste der Tabs und den kürzlich geschlossenen Tabs und zwar sowohl in der Sidebar als auch als PopUp (per Button-Aufruf).
Die erstellten Listeneinträge - also entsprechend den Tabs - können
- per linker Maustaste angewählt,
- per mittlerer Maustaste gelöscht,
- und per rechten Maustaste entladen und (in der Tabs-Leiste) verborgen werden.Ich hänge die Extension mal gezippt an, damit man meine Problemchen nachvollziehen kann.
(Oder mir Tipps geben kann...)
[attachment=0]extension.zip[/attachment]Kleiner Screenshot für alle, die sich das ZIP-File nicht herunterladen oder die Extension nicht installieren möchten:
[attachment=1]extension.PNG[/attachment]Soweit funktioniert das jedenfalls schon ganz gut.
Um die Liste zu aktualisieren, benutze ich entsprechende addListener, also
und so weiter.
Aber genau der onRemoved.addListener macht mir bissel Probleme. Und eigentlich nur der.
Solange ich in der Liste selbst ein Tab entferne (mittlere Maustaste), ist alles schick.
Aber sobald ich ein Tab in der Tab-Leiste selbst lösche, wird der entsprechende Eintrag nicht sofort aus der Liste entfernt.
Erst nachdem sich die Liste durch eine andere Aktion wieder aktualisiert, ist auch der Eintrag verschwunden.
Ich könnte mir mit einer leichten Verzögerung durch setTimeout behelfen - das funktioniert. Aber ich denke, das kann es nicht sein und irgendwo mache ich einen Fehler.
Nur welchen? Lösungsvorschläge?Banal, aber nervig: Ich habe in meiner popup.js vier Constanten jeweils Elemente aus popup.html zugewiesen.
Allerdings bekomme ich in der Konsole für genau diese eine Constante immer wieder diesen Fehler angezeigt:
ZitatTypeError: createTab is null
Was für mich völlig unverständlich und irritierend ist, denn das Element ist ja vorhanden und unterscheidet sich nicht von den anderen. Vor allem, weil es dann ja doch funktioniert, wie es soll. openOptions ist ebenfalls eine Constante und auch ein target eines addEventListener. Funktioniert ohne Fehleranzeige.
Auch ein Umbenennen von createTab hat nicht geholfen. Frage: Woran könnte dies liegen?Ferner wird mir in der Konsole dieser Fehler vorgeworfen:
ZitatSicherheitsfehler: Inhalt auf moz-extension://74cf95bb-dfe2-4c98-b098-9d37543c7c18/popup/popup.html darf chrome://mozapps/skin/extensions/extensionGeneric-16.svg nicht laden oder verlinken.
Direkt über meine Extension wird keine chrome-Grafik geladen. Ich könnte mir aber vorstellen, das diese Fehlermeldung mit dem Auslesen der Favicons-Adresse zu tun haben könnte.
Irgendjemand Ideen dazu?Was als nächstes ansteht, sind Optionen. Fände ich nett.
Eine Optionsseite habe ich auch bereits angelegt und ich kann sie auch aufrufen.
Was mich nun interessiert: Welche Funktionen benötige ich bzw. sollte ich mir anschauen, um das zu realisieren.
Wie werden Optionen gespeichert? Wie rufe ich diese wieder ab? Usw.
Ich erwarte keine Komplett-Lösung, nur ein paar Anhaltspunkte, damit ich nicht völlig im Dunkel des MDN herumirre... -
-
...
Vielen Dank für die Erklärung und die weiterführenden Links, Sören.ZitatThis then introduces the black box scenario for many new JavaScript developers, jQuery “just works”. If you’re one of those people, you’re probably going to tread on a nail one day and realise you’d wished you learned how the DOM really works with JavaScript, so here’s a quick lesson for you if you’re in that boat.
Eben mal kurz in den Todd Motto-Artikel geschaut: Meine Rede. So ähnlich geht es mir ja nun auch. Vielleicht nicht ganz so tragisch, weil ich immerhin die Basics kenne und nicht völlig unbedarft bin, aber ich musste schon schmunzeln.Zu deinen Commits stellen sich mir auch wieder Fragen, aber das würde hier zu weit führen. Das mache ich dann mal die Tage. :wink:
Die neue Version schaue ich mir dann morgen auch noch an.
-
Super. Lass mich wissen, wenn du dazu Anmerkungen hast. Dass es noch etwas viel Code-Duplizierung gibt, ist mir bekannt, für nach Version 1.0 steht ein bisschen Code-Refactoring an. Ich will die Veröffentlichung der ersten Version nicht damit aufhalten. Auch könnte der Code deutlich mehr Kommentare vertragen. Das wird dann auch im Rahmen des Refactorings passieren.
Na, da werde ich dir sicher nicht viel zu sagen haben. Ich habe ganz bestimmt weniger Erfahrung mit reinem Javascript als du, da ich ja jQuery-verwöhnt bin und deshalb selten darauf zurückgreifen musste. Ich kenne die Basics, aber vieles ist mir auch relativ unbekannt. So Konstrukte wie
sind mir fremd und ich frage mich, was will der Author mir damit sagen... :-??
Okay, querySelectorAll und forEach verstehe ich, aber was bedeutet :scope und überhaupt: was sollen die drei Punkte da...
Du siehst, meine Schwierigkeiten fangen bereits an, bevor ich überhaupt eine manifest.json erstellt habe.
Gratulation zu den ersten Gehversuchen mit WebExtensions! Zöger nicht, deine Fragen zu stellen (in einem eigenen Thread dann natürlich).
Dankeschön.
Ich habe es lange vor mich hergeschoben (auch weil ich mich bissel vor dem reinen Javascript drücken wollte), aber das hat mich doch schon die ganze Zeit gereizt. Aller Anfang ist schwer, aber mit der Zeit werde ich mich da sicher auch reinfinden. Das Angebot nehme ich natürlich dankend an und werde bestimmt die nächsten Tage die ersten Fragen stellen. Momentan tue ich mir noch schwer mit den Strukturen. Ich habe z.B. heute das i18n eingebunden, aber es hat nicht sofort geklappt. Warum? Weil ich eine halbe Stunde gebraucht habe, um herauszufinden, dass man in der manifest eine default_locale vorgeben muss... -
Ja, mir ist es auch nur aufgefallen, weil ich gerade dabei war, das für meine Extension anzupassen und geschaut habe, wie Sören das da einbindet und was sonst nötig ist.
-
Da kann man mal sehen, wozu ein Hirn in der Lage ist. Meines hat das fehlende Wort einfach hinzugefügt...
In "explanation_intro_linux" ist der Fehler übrigens auch drin. -
Ja, schaut doch inzwischen so aus, als sei es bereits fertig.
Übersichtlich und praktisch selbsterklärend. Gut, die Validierung fehlt noch, aber wer das Tool nutzt, sollte eigentlich auch wissen, was er da macht bzw. eingibt.
Mir persönlich wird das Tool zukünftig einige Arbeit ersparen, weil ich meinen Leuten auf diese Weise schnell mal die Einstellungen verpassen kann, die ich für sie jeweils angemessen halte. :wink:<offtopic>
Und jetzt schaue ich mir deinen Quellcode an. Ich habe mich nämlich gestern tatsächlich dazu aufraffen können, mal meine erste Webextension zu scripten. Nicht Wildes - eine Tab/History-Liste in der Sidebar und als Popup - und natürlich relativ stark an den Beispielen orientiert. Und dazu habe ich jetzt mehr Fragen als mir lieb sind...
</offtopic> -
Hi Leute,
ich bin eben zufällig über dieses Angebot gestolpert.
Bis heute abend 18:00 Uhr kann man sich noch bei humblebundle.com das Spiel The Flame in the Flood kostenlos sichern.
Finde ich gut.Anmeldung und Steam-Account sind allerdings Voraussetzung. Normal kostet das Spiel 14.99€.
Hier ein [Let's Play] für Interessierte... :wink:
Das Game kann man übrigens auf deutsch spielen.