Button für ein Popup zur Zeitanzeige verschiedener Städte in verschiedenen Zeitzonen

  • Firefox-Version
    117.0 (64Bit)
    Betriebssystem
    Windows 10 Version 22H2 (Build 19045.3324)

    Ich habe mal etwas gebastelt.

    Inspiriert würde ich durch worels Beitrag.

    Ich bräuchte aber noch ein kleines bisschen Hilfe!

    Das Skript funktioniert.

    Nur der Titel!!

    Wie kann dieser geändert werden?

    Z.B. "Eieruhr", oder was auch immer.

    Und wenn man sich die "Liste" anschaut, fällt einem auch sofort auf,

    der Versatz bei ungleich langen "Tagen".

    Wie lässt sich das schöner formatieren?

    Hier nun mal das JavaScript:


    Wichtig :!:

    Diese Liste.

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (12. September 2023 um 21:06) aus folgendem Grund: Ein Beitrag von Mira_Belle mit diesem Beitrag zusammengefügt.

  • Ich habe mal etwas gebastelt.

    ....

    Hier nun mal das JavaScript:

    Wenn ich einen Vorschlag machen dürfte: width und height sollten vielleicht generell nicht festgelegt werden für den Button; das kann einem uU das Layout zerschiessen, wenn man keine Standardwerte benutzt, und Fx bzw. ein anständiges allgemeines CSS justiert Buttons auch von alleine.

    Ausserdem finde ich es immer nett, wenn ein Script Button nur mit normalem Linksklick angesprochen wird statt mit allen Klicks, ausser man benutzt Extrafunktionen für die anderen Klicks.

    Nur so ein Gedanke. ;)

  • Wenn ich einen Vorschlag machen dürfte: width und height sollten vielleicht generell nicht festgelegt werden für den Button; ...

    Ist, war von mir aber so beabsichtigt!

    Wer das nicht mag, kann es ja ausklammern ;)

    ...

    Ausserdem finde ich es immer nett, wenn ein Script Button nur mit normalem Linksklick angesprochen wird statt mit allen Klicks, ausser man benutzt Extrafunktionen für die anderen Klicks.

    Da ich trotz dieser Fortschritte immer noch nicht wirklich etwas von JavaScript verstehe,

    ich finde, es ist ein Wunder, dass ich das hinbekommen habe,

    wirst Du mir den "richtigen" Codeschnipsel um Deine Idee umsetzen zu können,

    schon zukommen lassen müssen.

    Denn ich habe keine Ahnung, wie das funktionieren soll.

    Wo bei, so einen Verdacht habe ich schon, mal schau'n.

    Der Titel kann aus Sicherheitsgründen nicht geändert werden. Im Kontext einer Website steht dort die Domain. Ansonsten eben genau das.

    Ok, dann ist das halt so. Danke für die Erklärung.

    Wie schauts mit der Formatierung aus?

    Jemand eine Idee?

    Mit <3lichem Gruß

    Mira

  • Ausserdem finde ich es immer nett, wenn ein Script Button nur mit normalem Linksklick angesprochen wird statt mit allen Klicks, ausser man benutzt Extrafunktionen für die anderen Klicks.

    Nur so ein Gedanke. ;)

    I am Groot!

    Mache aus toolbaritem.onclick = function () {

    das =>

    JavaScript
                toolbaritem.onclick = function (event) {
                   if (event.button === 0) { ....

    und füge noch eine }  nach

    window.alert(t10+' Berlin\n'+t20+' New York\n'+t30+' Moscow\n'+t40+' Hong Kong\n'+t50+' Sydney'); ein. :D

    Mit <3lichem Gruß

    Mira

  • Mache aus toolbaritem.onclick = function () {

    das =>

    JavaScript
                toolbaritem.onclick = function (event) {
                   if (event.button === 0) { ....

    und füge noch eine }  nach

    Ah, sorry, du hast den Linksklick schon in anderen Scripts benutzt, daher dachte ich du hättest es absichtlich hier anders gemacht.

  • Wie schauts mit der Formatierung aus?

    Jemand eine Idee?

    Sieht schlecht aus, es ist kaum möglich ein js-alert-Fenster zu formatieren,

    vielleicht/t?

    Das ist so ziemlich die einzige Möglichkeit, ja. Es ist nicht Sinn der Sache, ein alert-Dialog umzugestalten. Das ist ein standardisierter Dialog, der immer gleich aussehen soll, sprich absichtlich nicht gestaltet werden kann. Wenn man etwas Hübscheres sucht, muss man seinen eigenen Dialog implementieren. Das ist auch kein Hexenwerk (dafür gibt es das dialog-Element, welches man frei via HTML und CSS gestalten kann), aber das ist dann natürlich gleich deutlich mehr Aufwand als ein „Fertigbauteil“ zu verwenden.

  • Ich hatte die falsche Schreibweise zunächst auch übersehen, es muss \t heißen. Ähnlich wie du \n ja auch für einen Zeilenumbruch verwendest, fügst du auf diese Weise einen Tab ein.

    Danke für die Erklärung,

    ist aber dennoch nicht zu gebrauchen.

    Im Gegenteil, der Versatz zwischen Mittwoch und Donnerstag wird sogar noch größer.

    Dann bleibt es halt, wie es ist.

    Hier mal der derzeitige Code:

    Mit <3lichem Gruß

    Mira

  • Ist ja peinlich, sorry für den falschen Schrägstrich.

    Mir ist noch etwas anderes aufgefallen:

    Ist Zeile 86 ein Überbleibsel aus einem anderen Button?

    Ich mach mir die Welt, wie sie mir gefällt. [Pippi Langstrumpf/Astrid Lindgren]

  • Ist ja peinlich, sorry für den falschen Schrägstrich.

    Mir ist noch etwas anderes aufgefallen:

    Ist Zeile 86 ein Überbleibsel aus einem anderen Button?

    Danke für den Hinweis!

    Ja, habe den Code zum Teil aus einem bestehenden anderen Code genutzt.

    Diese Zeile kann gelöscht werden.

    Nur habe ich keinen blassen Schimmer, ob dieses Skript nun auch unter Linux und/oder auf einem Mac läuft.

    Mit <3lichem Gruß

    Mira

  • Das Skript für die Anzeige der Uhrzeiten in der Alert-Box ist für mich uninteressant, gibt zig Lösungen dafür, die schneller zu bewerkstelligen sind und auch immer und überall funktionieren (z.B. WindowsTaste+D).

    Aber was ich interessant finde, ist die Frage, wie man eine universell einsetzbare Dialog-Box für userChrome-Skripte verwenden kann.

    Das ist auch kein Hexenwerk (dafür gibt es das dialog-Element, welches man frei via HTML und CSS gestalten kann), aber das ist dann natürlich gleich deutlich mehr Aufwand als ein „Fertigbauteil“ zu verwenden.

    Dafür braucht man aber im userChrome-Kontext erstmal einen "HTML-Playground", also ein Element vom Typ iFrame. Das müsste man dann wohl mittels XUL erzeugen (über ein browser-Element?) und irgendwo in ein anderes Element ('vBox', 'panel') einfügen. Also quasi als zusätzlicher Bereich irgendwo eingehängt. Oder sehe ich das falsch? :/

    Bin sicher, dass das funktioniert, aber auch ziemlich aufwendig. Die Lösung hätte aber den großen Vorteil, dass man das weitere Design dann recht bequem über HTML/CSS einstellen könnte.

    Eine andere Lösung wäre über XPCOM. Leider habe ich bis heute keine einfache Dokumentierung der einzelnen Schnittstellen- Funktionen gefunden, nur die idl-Dateien selber und was die Entwickler dazu geschrieben haben, was aber immerhin meistens recht ausführlich geschieht. Hier mal 2 Links, falls Interesse an der Thematik besteht:

    XPCOM — Firefox Source Docs documentation

    nsIPromptService.idl - mozsearch

    Mit dieser Methode lassen sich "echte Dialogfenster"(also Windows-Fenster) erzeugen, allerdings ist der Aufruf und die Anpassungen auch nicht sehr "handy" (asynchroner Aufruf usw.). Ich habe es ausprobiert und es funktioniert prinzipiell eigentlich ganz gut.

    Ich persönlich finde beide Ansätze interessant.

    Noch etwas OT: Ich verstehe nicht, dass sich in diesem Forum mit seinen fast 65Tsd Mitgliedern so wenige hier für die Thematik "userChrome JavaSkripte" interessieren und sich aktiv hier im Forum austauschen wollen. JavaScript gehört doch zu den populärsten Sprachen überhaupt, daher denke ich, dass es doch sicher einige User hier im Forum gibt, die dies auch beherrschen. Ist der Grund, dass man lieber Webextensions programmiert und die userChrome-Geschichte (betrifft auch CSS) eher als Spielerei und Hackerrei betrachtet? Schön wenn Leute wie Mira sich anscheinend noch dafür begeistern können, aborix ist leider untergetaucht(?) , der Mann (Name fällt mir jetzt nicht ein), der den Wetterfuchsbutton gemacht hat, auch nicht mehr aktiv, EffPeh auch schon lange nicht mehr da. Der einzige, der sich noch mit entsprechendem Hintergrundwissen dazu äußern kann, ist anscheinend Sören Hentzschel. Der hat aber schon öfters bekundet, kein großes Interesse an der userChrome-Geschichte zu haben. Alles maßlos traurig! so ich geh jetzt weinen und dann für ein paar Stunden ins Bett... ;( :sleeping:

    PS:Wenn Mira_Belle meint, dass das, was ich geschrieben habe, inhaltlich nicht mehr zu ihrem Thread passt, kann man den Inhalt auch gerne auslagern.

  • Funktioniert am Mac ohne die Zeile, besteht auch Elchtest! ;)

  • Dafür braucht man aber im userChrome-Kontext erstmal einen "HTML-Playground", also ein Element vom Typ iFrame. Das müsste man dann wohl mittels XUL erzeugen (über ein browser-Element?) und irgendwo in ein anderes Element ('vBox', 'panel') einfügen. Also quasi als zusätzlicher Bereich irgendwo eingehängt. Oder sehe ich das falsch? :/

    Funktioniert das im Script nicht? Da ich keine Scripts nutze, kann ich es nicht testen. Über die Konsole funktioniert das zumindest, das wird im DOM des Browsers eingefügt.

    Das sieht so nicht hübsch aus und macht nichts Sinnvolles, sondern soll nur die grundsätzliche Idee verständlich machen.

    Ich verstehe nicht, dass sich in diesem Forum mit seinen fast 65Tsd Mitgliedern so wenige hier für die Thematik "userChrome JavaSkripte" interessieren und sich aktiv hier im Forum austauschen wollen.

    Wir haben ja nicht wirklich fast 65.000 Mitglieder. Klar, so viele sind registriert, aber die meisten haben sich einmalig (oder auch ein paar Mal) wegen eines Problems gemeldet und nicht, um sich hier dauerhaft auszutauschen. Wir sind schon eine eigentlich eher kleine und kuschelige Community.

    Und was das Thema betrifft, ist es halt selbst unter den Nischen eine Nische. Das Thema ist einfach winzig, gemessen an der Gesamtzahl aller Nutzer.

    JavaScript gehört doch zu den populärsten Sprachen überhaupt, daher denke ich, dass es doch sicher einige User hier im Forum gibt, die dies auch beherrschen.

    Ich glaube ehrlich gesagt nicht, dass wir viele Nutzer bei uns haben, die JavaScript tatsächlich beherrschen. Selbst wenn wir noch die dazu nehmen, die durch Probieren und Ausdauer Ergebnisse erzielen, sprechen wir hier doch insgesamt von einer sehr überschaubaren Anzahl. Vor allem: Selbst wenn man JavaScript beherrscht, heißt das ja auch noch lange nicht, dass man das Wissen für Firefox-Anpassungen anwenden kann. Denn dann kommen die Firefox-Interna wie XUL und irgendwelche Firefox-APIs ins Spiel, mit denen jemand, der mit JavaScript arbeitet, normalerweise überhaupt nichts zu tun hat. Selbst als WebExtension-Entwickler muss man nicht ansatzweise so tief in die Materie einsteigen. Und um sich damit zu befassen, muss dann halt auch ein entsprechend großes Interesse vorhanden sein, sonst passiert das nicht.

    Ist der Grund, dass man lieber Webextensions programmiert und die userChrome-Geschichte (betrifft auch CSS) eher als Spielerei und Hackerrei betrachtet?

    Ich kann nicht für die Gründe anderer sprechen, ich sehe da aber ein paar ganz grundsätzliche Aspekte. Für die allermeisten dürfte schlicht und ergreifend kein Bedarf an sowas bestehen. Die Einstiegshürde ist vergleichsweise hoch und andauernd werden dadurch Probleme verursacht oder die Scripts müssen aktualisiert werden. Eine Update-Funktion gibt es ja auch keine. Dazu die oft nicht gute Code-Qualität und nicht gewährleistete Sicherheit. Gut, die letzten zwei Aspekte sehen wohl nur die wenigsten, aber für mich sind das ernsthafte Punkte. Besonders problematisch finde ich die Art von Script, welche interne Firefox-Funktionen überschreibt. Denn das sind tickende Zeitbomben.

    Und das erklärt dann auch das hier:

    Der einzige, der sich noch mit entsprechendem Hintergrundwissen dazu äußern kann, ist anscheinend Sören Hentzschel. Der hat aber schon öfters bekundet, kein großes Interesse an der userChrome-Geschichte zu haben

    Wobei ich hier festhalten möchte: Eine gewisse JavaScript-Kompetenz habe ich zwar, mit den ganzen Firefox-Interna, welche durch die Scripts genutzt werden, habe ich selbst aber auch nur ganz wenig zu tun. Mein größter Beitrag zu dem Thema ist, wenn ein Script nicht mehr funktioniert, dass ich dann einen ganz guten Weg habe, dem Auslöser auf den Grund zu gehen. Und mit Glück stoße ich dann vielleicht auch auf eine Alternative. Das hat aber auch wenig damit zu tun, sich mit der internen Funktionsweise von Firefox auszukennen.

    Meine Sicht auf das Thema ist am Ende einfach nicht die eines neugierigen Bastlers, der jeden Stein umdrehen möchte, nur weil es halt geht. Meine Zielsetzung für Firefox geht viel mehr in die Richtung von Mozilla, ein funktionierendes Produkt zu haben, welches nicht anfällig für selbst erzeugte Defekte ist. Zumal ich viele der in diesem Forum umgesetzten Dinge - und damit will ich niemandem zu nahe treten! - sinnlos und oft auch optisch wenig ansprechend finde, was in meinem Firefox einfach keinen Platz hat. ;)

  • BrokenHeart Alles gut.

    Ich habe mich auch schon gewundert, warum nicht viel öfters JavaScript genutzt wird.

    Man kann damit so viele herrliche Dinge anstellen, und CSS gleich integrieren.

    So hat man dann alles unter einem "Dach und Fach"!

    Ich nutze zig Cascading Style Sheets und verliere recht oft den Überblick, weil ich nicht mehr weis,

    in welcher Datei noch mal der Code für diese oder jene Anpassung steckt.

    Gerade der Code für die ganzen grafischen Anpassungen ist dann doch leider etwas verteilt.

    Zu meinem Glück habe ich ja in weiser Voraussicht alle Symbole in ein JavaScript gepackt,

    was ich aber noch machen muss, auch den Code für ausgeblendete Elemente entweder da

    oder an anderer Stelle "zentral" zusammenzufassen.

    Habe also noch eine Großbaustelle.


    Was den Button zur Datums- und Zeitanzeige angeht, würde ich das Ding gerne umgestalten.

    Es gibt so viele Popups die einen mit m.M. nach unwichtigen Infos versorgen, da kam mir,

    durch .DeJaVu angeregt, die Idee doch eine "Fläche" zu "programmieren", bei der das Popup die

    eigentliche Funktion der Anzeige übernimmt.

    Bedauerlicherweise habe ich da keine Erfahrung und auch im Netz nicht wirklich etwas gefunden.

    Aber auch hier, auf dieser Seite, werden solche Popups generiert und angezeigt!

    Man fahre doch mal über den Benutzernamen!

    Was für ein schönes Popup.

    Oder auf der Startseite des Forums, über ein x-beliebiges Thema in der Rubrik "Unerledigte Themen".

    So in etwa stelle ich mir das vor! Irgendwo auf irgendeiner Leiste ein "Symbol" oder eine "Fläche",

    die Fläche dann mit Bezeichnung (Schriftzug, z.B. Uhrzeit) und wenn man mit der Maus drüberfährt

    geht solch ein Popup auf und zeigt einem die Uhrzeiten, die man vorher ausgewählt hat, an.

    Das wäre was, finde ich.

    Und ich bin mir absolut sicher, dass das geht, nur ich bin noch nicht so weit, dass ich das umsetzen könnte.

    Funktioniert am Mac ohne die Zeile, besteht auch Elchtest! ;)

    Danke für die Rückmeldung.

    Mit <3lichem Gruß

    Mira

  • Ich nutze zig Cascading Style Sheets und verliere recht oft den Überblick

    Daran ändert sich doch nichts, nur weil du die CSS Codes in Skripte packst :/

    Außerdem, Skripte nutzen zu können bedarf einer größeren Vorbereitung als CSS Codes zu nutzen.

    Und wenn ein Skript nicht funktioniert stellt sich die Frage, liegt es am Skript oder dem CSS Code darin.

    Ich nutze hier 62 CSS Dateien und 41 Skripte.

    Alle CSS Dateien haben einen Namen/Bezeichnung womit man/ich sofort erkennen kann, was damit verändert wurde.

    Für mich! gibt es also keinen Grund, meine CSS Codes extra noch in Skripte zu packen. ;)

    PS:

    Aber wie immer...jeder wie er mag :)