marctrix: Links in neuem Fenster öffnen

0 110

Links in neuem Fenster öffnen

  1. 1
    1. 0
      1. 1
    2. 0
      1. 0
      2. 0
        1. 3
          1. 0
    3. 0
      1. 0
        1. 0
          1. 1
            1. 3
              1. 1
                1. 0
                  1. 0
                    1. 0
                      1. 0
                        1. 0

                          ein Anfang

                  2. 0
                    1. 0
                      1. 3

                        Einstellungen überarbeiten, Prototyp

                        1. 0
                          1. 0
                            1. 0
                              1. 0

                                Einstellungen überarbeiten, Prototyp, Bitte um Hilfe

                                1. 0
                                  1. 0
                                    1. 0
                                      1. 1
                                        1. 2
                                          1. 0
                                          2. 0
                                            1. 0
                                              1. 0
                                                1. 0
                                                  1. 1
                                                    1. 0
                                                      1. 0
                                                        1. 1
                                                          1. 0
                                                            1. 0
                                                              1. 0
                                                                1. 0
                                                                  1. 0
                                                                    1. 0
                                                                    2. 0
                                                                      1. 0
                                                                      2. 0
                                                                2. 0
                                                              2. 0
                                                                1. 0
                                                              3. 0
                                                                1. 0
                                                                  1. 0
                                                                    1. 2
                                            2. 0
                                          3. 0
                                            1. 0
                                              1. 1
                                        2. 1
                                          1. 0
                                            1. 0
                        2. 0
                2. 0
                  1. 0
                    1. 0
                    2. 0
              2. 0
              3. 0

                Alt-Text eines eigenen Avatars

                1. 0
                  1. 0
                    1. 2
                      1. 0
                        1. 0
                          1. 1
                            1. 0
                              1. 0
                                1. 0
                            2. 0
                        2. 0
                          1. 0
                        3. 0
                          1. 0
                            1. 0
                              1. 0
                                1. 0
                              2. 0
                        4. 0
                      2. 0
                        1. 1
                          1. 0
                            1. 0
                              1. 0
                      3. 0
                        1. 0
              4. 0
                1. 1
                  1. 0
                    1. 0
                      1. 0
                        1. 1
                          1. 0
                            1. 0
                      2. 0
                      3. 0
            2. 0
              1. 0
                1. 0

Hej Moderatoren,

ich würde mir eine Option "externe Links in neuem Tab öffnen" wünschen - die bisherige Option alle Links in einem neuen Tab zu öffnen ist ja (IMHO) recht sinnfrei...

Marc

  1. Hallo marctrix,

    ich würde mir eine Option "externe Links in neuem Tab öffnen" wünschen

    Hätte ich gerade Haare auf dem Kopf, würde ich sie mir raufen ;)

    CK ohne Haare

    Wofür möchte man sowas? Ich schau mal, ob man da sinnvoll was machen kann…

    • die bisherige Option alle Links in einem neuen Tab zu öffnen ist ja (IMHO) recht sinnfrei...

    Ich habe auch diesen Wunsch nicht verstanden…

    LG,
    CK

    1. Tach!

      Ich würde in keinem Fall Links in einem neuen Tab/Fenster/whatever öffnen. Diese Funktionalität ist bereits in den Browsern enthalten, meist sogar mit nur einem Klick, auf jeden Fall über das Kontextmenü. Macht man das als Webseite unaufgefordert, behindert das massiv die übliche Navigation. Statt einfach zurückgehen zu können (über die History-Liste auch in größeren Sprügen), muss man suchen, welche Tabs denn hinzugekommen sind und diese einzeln schließen. (Glücklicherweise gibt es (zumindest für den Firefox) Plugins, die diese Bevormundung der Anwender verhindern und target=_blank ignorieren.)

      dedlfix.

      1. Hallo dedlfix,

        Diese Funktionalität ist bereits in den Browsern enthalten, meist sogar mit nur einem Klick, auf jeden Fall über das Kontextmenü.

        Naja, das Kontext-Menü und vor allem das erkennen eines externen Links ist auf einem Mobil-Gerät schwierig.

        Macht man das als Webseite unaufgefordert, behindert das massiv die übliche Navigation.

        Es geht um eine Einstellung in der Nutzer-Konfiguration. Von unaufgefordert oder Bevormundung kann also gar keine Rede sein ;)

        LG,
        CK

    2. Hallo Christian Kruse,

      Ich habe auch diesen Wunsch nicht verstanden…

      Ich bin halt kein Bei-Bedarf-die-mittlere-Maustaste-Drücker ;-) Grundsätzlich jeden Link in einem neuen Tab/Fenster[1] zu öffnen, halte ich aber dennoch für ziemlich sinnfrei, deshalb habe ich folgendes JS am Start:

      $(document).ready(function(){
        $(".posting-content a, .problematic-site a").each(function(){$(this).attr('target', '_blank');})
      })
      

      Eine Verknüpfung aus ggf.[2] :not und Attributselektoren sollte es ermöglichen, das auf externe Links zu beschränken.

      Bis demnächst
      Matthias

      --
      Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.

      1. M. W. kann man nicht zwischen Tab und Fenster unterscheiden, das muss der Nutzer selbst im Browser einstellen. ↩︎

      2. Je nachdem, wie du intern definierst und wie die href-Attribute aussehen. ↩︎

      1. Hallo,

        Ich habe auch diesen Wunsch nicht verstanden…

        Ich bin halt kein Bei-Bedarf-die-mittlere-Maustaste-Drücker ;-)

        ich auch nicht, ich mach das aus Gewohnheit fast immer, nicht "bei Bedarf".

        Grundsätzlich jeden Link in einem neuen Tab/Fenster zu öffnen, halte ich aber dennoch für ziemlich sinnfrei

        Sehe ich auch so. Im alten Forum gab es diese Einstellung in der Config auch schon, und dort wirkte sie nur aus Links innerhalb von Postings. Das fand ich weitgehend sinnvoll (wenn auch nicht immer). Hier wirkt diese Einstellung aber anscheinend auf alle Links, also auch z.B. die Posting-Links im Threadbaum.

        M. W. kann man nicht zwischen Tab und Fenster unterscheiden, das muss der Nutzer selbst im Browser einstellen.

        Stimmt.

        Ciao,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
      2. @@Matthias Apsel

        Ich bin halt kein Bei-Bedarf-die-mittlere-Maustaste-Drücker ;-)

        Ich auch nicht.

        Apple-Maus

        Was ist das überhaupt, „mittlere Maustaste“?

        LLAP 🖖

        --
        “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
        Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|

        Folgende Beiträge verweisen auf diesen Beitrag:

        1. Hallo,

          [Apple-Maus]

          Wie, eine Hand hat vier Finger? Und einen Daumen? Kommt man da nicht durcheinander?
          Neenee, lasst uns an das Eingabegerät nur eine Taste anschrauben, wir könnten unsere User überfordern...

          Gruß
          Kalk

          1. Hallo Tabellenkalk,

            [Apple-Maus]

            Wie, eine Hand hat vier Finger? Und einen Daumen? Kommt man da nicht durcheinander?
            Neenee, lasst uns an das Eingabegerät nur eine Taste anschrauben, wir könnten unsere User überfordern...

            Genau genommen ist die Magic Mouse aufgrund der Touch-Fähigkeiten deutlich komplizierter als eine normale Maus… ;)

            Ich mag sie wegen des Touch eigentlich gerne, aber sie ist einfach zu unergonomisch, davon tun mir die Finger nach zwei Tagen weh. Und da die Touch-Unterstützung für diese Maus unter Linux auch nicht die beste ist hab ich sie dann verkauft.

            LG,
            CK

    3. Hej Christian,

      ich würde mir eine Option "externe Links in neuem Tab öffnen" wünschen

      Hätte ich gerade Haare auf dem Kopf, würde ich sie mir raufen ;)

      :-D

      Wofür möchte man sowas?

      Ich bringe ja auch immer jedem bei, auf target="_blank" zu verzichten. Aber Hintergrund ist ja, dass man den Nutzer nciht bevormunden möchte. (Leider ?) halten sich die meisten Webseiten nciht dran. Gerade hier im Forum möchte ich nicht gerne "aus dem Thread fliegen", wenn ich Links zu Beispielen anklicke (auf Codepen oder wo auch immer). Auch vergesse ich manchmal die Steuerungs-Taste zu drücken, wenn ich einem link zu einer Webseite mit einem Problem folge. Dann muss ich mich nach mehreren Klicks auf der Seite durch die Historie "kämpfen", um wieder zum Thread zu kommen - und lande wenn ich zu oft auf "zurück" geklickt habe dann auch noch irgendwo anders im Baum, als dort, von wo ich dem Link gefolgt bin.

      Ich schau mal, ob man da sinnvoll was machen kann…

      Vielleicht ist das nur mein Problem - ich persönlich würde gerne in einem neuen Tab haben, was nicht mit "https://forum.selfhtml.org/" beginnt...

      Marc

      1. Hallo marctrix,

        Gerade hier im Forum möchte ich nicht gerne "aus dem Thread fliegen", wenn ich Links zu Beispielen anklicke (auf Codepen oder wo auch immer).

        Ist denn das der Fall?

        Bis demnächst
        Matthias

        --
        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
        1. Hej Matthias,

          Hallo marctrix,

          Gerade hier im Forum möchte ich nicht gerne "aus dem Thread fliegen", wenn ich Links zu Beispielen anklicke (auf Codepen oder wo auch immer).

          Ist denn das der Fall?

          Wie gesagt: besuche ich eine problematische Seite und klicke da dann etwas rum, ist es einfach mühsam durch die Browser-Historie zu schlurfen, bis man wieder am Ausgangspunkt der Diskussion ist. Wenn ich diese Funktion als einziger vermisse - egal.

          Ich bin halt nciht gut in JavaScript, aber wenn mir einer mit einem Code-Schnipsel aushelfen könnte, bin auch zufrieden - muss ja nciht für alle eingebaut werden.

          Würde das funktionieren:

          $(document).ready(function(){
            $("[href^="https://forum.selfhtml.org"]").each(function(){$(this).attr('target', '_blank');})
          })
          

          Marc

          1. Hallo marctrix,

            Ich bin halt nciht gut in JavaScript, aber wenn mir einer mit einem Code-Schnipsel aushelfen könnte, bin auch zufrieden - muss ja nciht für alle eingebaut werden.

            $(document).ready(function(){
              $(".posting-content a, .problematic-site a").each(function(){$(this).attr('target', '_blank');})
            })
            

            Dieses Skript fügt das target-Attribut an den Link zur problematischen Seite sowie an alle Links innerhalb von Beiträgen an. Damit bin ich sehr zufrieden.

            $(document).ready(function(){
              $(".posting-content a:not([href^=https://forum.selfhtml.org]), .problematic-site a").each(function(){$(this).attr('target', '_blank');})
            })
            

            Dies beschränkt die Links auf solche, die innerhalb des Beitragstextes stehen und deren href-Attribut nicht mit "https://forum.selfhtml.org" beginnen.

            Bis demnächst
            Matthias

            --
            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
            1. Hallo Matthias,

              können wir das irgendwie in eine FAQ oder so aufnehmen? Dann würde ich das Feature für die Links einfach entfernen und damit eine Menge Komplexität reduzieren…

              LG,
              CK

              1. Hej Christian,

                können wir das irgendwie in eine FAQ oder so aufnehmen? Dann würde ich das Feature für die Links einfach entfernen und damit eine Menge Komplexität reduzieren…

                Bei den Einstellungen hatte ich als Anfänger das Problem, dass mir nur "probieren geht über studieren" weiter geholfen hat. Das Formular ist nciht sehr intuitiv und auch serh lang - vielleicht wäre es einerseits sinnvoll, das auf mehrere Seiten/Tabs aufzuteilen.

                Andererseits wäre es schön, wenn es zu den einzelnen Feldern Hinweise zum Ausfüllen gäbe. Bei den Freitext-Feldern "inline-JS" und "inline-CSS" vielleicht sogar Buttons zur automatischen Übernahme "populärer" Codeschnipsel, z. B. um eigene Beiträge hervorzuheben oder eben Links in einem neuen Tab zu öffnen.

                Marc

                1. Hallo marctrix,

                  Bei den Einstellungen hatte ich als Anfänger das Problem, dass mir nur "probieren geht über studieren" weiter geholfen hat. Das Formular ist nciht sehr intuitiv und auch serh lang - vielleicht wäre es einerseits sinnvoll, das auf mehrere Seiten/Tabs aufzuteilen.

                  Du bist herzlich eingeladen mal etwas auszuarbeiten :)

                  Andererseits wäre es schön, wenn es zu den einzelnen Feldern Hinweise zum Ausfüllen gäbe. Bei den Freitext-Feldern "inline-JS" und "inline-CSS" vielleicht sogar Buttons zur automatischen Übernahme "populärer" Codeschnipsel, z. B. um eigene Beiträge hervorzuheben oder eben Links in einem neuen Tab zu öffnen.

                  Gute Idee.

                  LG,
                  CK

                  1. Hej Christian,

                    Bei den Einstellungen hatte ich als Anfänger das Problem, dass mir nur "probieren geht über studieren" weiter geholfen hat. Das Formular ist nciht sehr intuitiv und auch serh lang - vielleicht wäre es einerseits sinnvoll, das auf mehrere Seiten/Tabs aufzuteilen.

                    Du bist herzlich eingeladen mal etwas auszuarbeiten :)

                    Reicht dir statisches HTML als Vorlage?

                    Marc

                    1. Hallo marctrix,

                      Reicht dir statisches HTML als Vorlage?

                      Klar.

                      LG,
                      CK

                      1. Hej Christian,

                        Reicht dir statisches HTML als Vorlage?

                        Klar.

                        Ich mach mal was - @Auge hat ja mögliche Probleme bereits angedeutet.

                        Prinzipiell gibt es die Möglichkeit, jedes der derzeitigen fieldsets anzuspringen (das mache ich jetzt erst mal, weil es die Arbeit erleichtert, mit nur einer html-Datei zu hantieren) oder das Formular auf mehrere Seiten zu verteilen. Für das HTML bedeutet es einfach nur die Seite in mehrere Dateien zu zerschnipseln, die Links verweisen dann auf die neuen Seiten statt auf IDs -lässt sich also leicht später ncoh umsetzen (oder wird gleich in PHP gemacht).

                        Der prinzipielle Unterschied in der Nutzererfahrung besteht mMn darin, dass die Tableiste essentiell wird - auf einer Seite könnte man scrollen (z. B. mit dem Smartphone) um an die einzelnen Bereiche zu gelangen, unterteilt man die Seite in mehrere einzelne, braucht man die Tabs unbedingt um an die entsprechenden Einstellungen zu kommen.

                        Ich werde mir das selber noch mal durch den Kopf gehen lassen und auch einfach mal ausprobieren (wenn man es sieht und klickt und auf den diversen Geräten bedienen muss ist es oft noch mal was anderes, als in der reinen Vorstellung, wo man leicht mal einen Aspekt vergisst) - heute komme ich nicht mehr dazu. Auf Vorschläge, Meinungen Wünsche bin ich gespannt und bitte hiermit um entsprechenden input!

                        Marc

                        1. Hallo

                          Ich habe mal einen JS-Schnipsel erstellt und getestet, der eine Linkliste zu den einzelnen Abschnitten generiert. Das Skript sammelt die ID der fieldsets und die Texte der dazugehörigen legends ein und baut daraus die Liste, die an das div.cf-tab-content angehängt wird. Die wird an das Ende von div.cf-tab-content gesetzt, was so natürlich nicht den gewünschten Zweck erfüllt.

                          EDIT: mit prepend geht die Liste natürlich auch an den Anfang. Mann, Mann, Mann …

                          Später könnte man z.B. aus dem HTML-Code die Tableiste erstellen.

                          $(document).ready(function(){
                          	var targetlist = '<ul class="tabswitcher"></ul>', targets = '';
                          	$('.cf-tab-content').append(targetlist)
                          	$('.cf-tab-pane').each(function(){
                          		targets += '<li><a href="#' + this.id + '">' + $(this).children('legend').text() + '</a></li>';
                          	})
                          	$('.tabswitcher').append(targets)
                          })
                          

                          Tschö, Auge

                          --
                          Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                          Wolfgang Schneidewind *prust*

                          Folgende Beiträge verweisen auf diesen Beitrag:

                  2. Hallo

                    Du bist herzlich eingeladen mal etwas auszuarbeiten :)

                    Da ich mich auch an's Rumpfriemeln gemacht habe, stellt sich mir eine Frage. Wenn ich mir den Seitenquelltext der Benutzereinstellungen anschaue, gibt es da, wie schon aufgeführt, die Klasse „active“. Die ist dem ersten fieldset zugewiesen. Welchem Zweck dient diese Klasse? Wechselt die unter Bedingungen zu einem anderen Fieldset und wenn ja, aus welchen Anlässen?

                    Könnte ich diese Klasse dazu benutzen, sie, je nach ausgewähltem Abschnitt, zu versetzen? So sollte sich der ausgewählte Abschnitt ein- und die anderen ausblenden lassen, um Tabs zu simulieren.

                    Tschö, Auge

                    PS: erste Ergebnisse zum spielen im Repo.

                    --
                    Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                    Wolfgang Schneidewind *prust*
                    1. Hallo Auge,

                      … die Klasse „active“. Die ist dem ersten fieldset zugewiesen. Welchem Zweck dient diese Klasse? Wechselt die unter Bedingungen zu einem anderen Fieldset und wenn ja, aus welchen Anlässen?

                      Die hat keine Funktion mehr. Damals[tm], als noch Bootstrap aktiv war, wurde diese Klasse von den Bootstrap-Tabs gesetzt.

                      Könnte ich diese Klasse dazu benutzen, sie, je nach ausgewähltem Abschnitt, zu versetzen?

                      Klar, tu dir keinen Zwang an ;)

                      LG,
                      CK

                      1. Hallo

                        Könnte ich diese Klasse dazu benutzen, sie, je nach ausgewähltem Abschnitt, zu versetzen?

                        Klar, tu dir keinen Zwang an ;)

                        Ich hab' da nach Rücksprache mit @marctrix mal was vorbereitet. In den Dateien selfforum-settingsmenu.css und selfforum-settingsmenu.js findet sich ein Prototyp für die Aufteilung der Anzeige des Formulars für die Benutzereinstellungen.

                        In den Einstellungen einfach den Code in die Felder für User-CSS und-JS verteilen und speichern.

                        Tschö, Auge

                        --
                        Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                        Wolfgang Schneidewind *prust*
                        1. Hallo Auge,

                          Ich hab' da nach Rücksprache mit @marctrix mal was vorbereitet. In den Dateien selfforum-settingsmenu.css und selfforum-settingsmenu.js findet sich ein Prototyp für die Aufteilung der Anzeige des Formulars für die Benutzereinstellungen.

                          Ich hab auch direkt eine Bitte: bitte mit history.pushState()/history.popState() arbeiten, so dass die History nicht kaputt geht und die einzelnen Tabs verlinkbar sind :) Danke!

                          LG,
                          CK

                          1. Hallo Christian

                            … ein Prototyp für die Aufteilung der Anzeige des Formulars für die Benutzereinstellungen.

                            Ich hab auch direkt eine Bitte: bitte mit history.pushState()/history.popState() arbeiten, so dass die History nicht kaputt geht und die einzelnen Tabs verlinkbar sind :) Danke!

                            Nach dem Laden der Seite per pushState zu #user-data zu springen bzw. das in der URL zu dokumentieren, kann ich ja noch nachvollziehen. Die folgenden Sprünge aber geschehen dann pur mit den generierten Links. Das spiegelt sich also auch in den sich ändernden Fragmenten am Ende der URL wieder. Was soll da gepusht oder gepoppt werden?

                            Tschö, Auge

                            --
                            Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                            Wolfgang Schneidewind *prust*
                            1. Hallo Auge,

                              jetzt hatte ich diesen Beitrag tatsächlich fast aus dem Auge verloren ;-)

                              Nach dem Laden der Seite per pushState zu #user-data zu springen bzw. das in der URL zu dokumentieren, kann ich ja noch nachvollziehen.

                              Das ist gut :-)

                              Die folgenden Sprünge aber geschehen dann pur mit den generierten Links. Das spiegelt sich also auch in den sich ändernden Fragmenten am Ende der URL wieder. Was soll da gepusht oder gepoppt werden?

                              History-Back sollte halt auch dazu führen, dass das Tab sich ändert. Das geht, auch bei sich ändernden Fragmenten, IMHO nur, wenn man auf popstate reagiert.

                              LG,
                              CK

                              1. Hallo

                                Die folgenden Sprünge aber geschehen dann pur mit den generierten Links. Das spiegelt sich also auch in den sich ändernden Fragmenten am Ende der URL wieder. Was soll da gepusht oder gepoppt werden?

                                History-Back sollte halt auch dazu führen, dass das Tab sich ändert. Das geht, auch bei sich ändernden Fragmenten, IMHO nur, wenn man auf popstate reagiert.

                                Grundsätzlich geht das auch ohne JS, mit dem Betätigen des Zurück-Buttons des Browsers wechselt brav das Fragement und dazu passend das dargestellte Tab. Ohne history.pushState komme ich allerdings an den Anfang zurück und das Tab mit den Benutzer-Informationen, welches beim Aufruf der Seite angezeigt wird, wird nicht dargestellt. Es sind nur der Kopf, die neue Tableiste und die Speichern- und Zurück-Buttons zu sehen.

                                Im Gegensatz dazu wird mir mit history.pushState das Tab angezeigt, aber auch dort komme ich noch einen Schritt weiter zurück, wo es kein Fragment gibt und ebenfalls nur die Tableiste und die Speichern- und Zurück-Buttons zu sehen ist. Das entspricht dem Zustand der Seite direkt beim/nach dem Laden und vor der Manipulation per JS.

                                Mit dem einfachen hinzufügen von history.pushState, wie ich es jetzt eingefügt habe, renne ich real noch in eine weitere Falle. Neben der eben beschriebenen Möglichkeit, auf den Zustand vor der Manipulation der URL zurück zu springen, wird mir, wenn ich die URL zu einem anderen als dem zuerst anzuzeigenen Abschnitt (#user-data) aufrufe, sowohl der gewünschte, als darüber auch der Abschnitt #user-data angezeigt.

                                Da ist also noch Arbeit notwendig. Ich versuche gerade, mich mit history.pushState und popstate vertraut zu machen. Unser Wiki gibt dazu offenbar nichts her. Ich habe jedenfalls nichts gefunden.

                                Ich bin sowohl für Lesestoff als auch für direkte Hilfe zum und am Code dankbar.

                                $(document).ready(function(){
                                	var targetlist = '<nav><ul class="tabswitcher"></ul></nav>', targets = '';
                                	$('.cf-tab-content').prepend(targetlist);
                                	$('.cf-tab-pane').each(function(){
                                		targets += '<li><a href="#' + this.id + '">' + $(this).children('legend').text() + '</a></li>';
                                	})
                                	$('.tabswitcher').append(targets);
                                	history.pushState({}, "", "#user-data");
                                	$('.tabswitcher li a').on('click', function(){
                                		if ($('#user-data').hasClass('active')) {
                                			$('#user-data').removeClass('active');
                                		}
                                	});
                                })
                                

                                Tschö, Auge

                                --
                                Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                Wolfgang Schneidewind *prust*
                                1. Hallo Auge,

                                  Ich bin sowohl für Lesestoff als auch für direkte Hilfe zum und am Code dankbar.

                                  Direkte Hilfe kann ich gerade leider keine geben (irgendwie ist mein AG der Meinung, ich solle etwas tun für das Geld, dass er mir jeden Monat überweist - tses, wie kommmt er da nur drauf??), da musst du dich bis heute Abend gedulden, aber die MDN zum Thema popstate bietet ein paar Beispiele und weiterführende Links; damit habe ich für ein Kunden-Projekt Tabs ganz gut umsetzen können.

                                  Im wesentlichen läuft es aber darauf hinaus, dass du die active-Klassen bei window.onpopstate neu setzt.

                                  LG,
                                  CK

                                  1. Hallo

                                    Ich bin sowohl für Lesestoff als auch für direkte Hilfe zum und am Code dankbar.

                                    Direkte Hilfe kann ich gerade leider keine geben

                                    Die Bitte richtete sich in die Runde der hier Lesenden, nicht direkt an dich.

                                    (irgendwie ist mein AG der Meinung, ich solle etwas tun für das Geld, dass er mir jeden Monat überweist - tses, wie kommmt er da nur drauf??) …

                                    Gute Frage. Was die sich nur immer einbilden … ;-)

                                    … aber die MDN zum Thema popstate bietet ein paar Beispiele und weiterführende Links; damit habe ich für ein Kunden-Projekt Tabs ganz gut umsetzen können.

                                    Im wesentlichen läuft es aber darauf hinaus, dass du die active-Klassen bei window.onpopstate neu setzt.

                                    Aha, mal sehen.

                                    Tschö, Auge

                                    --
                                    Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                    Wolfgang Schneidewind *prust*
                                    1. Hallo Auge,

                                      Direkte Hilfe kann ich gerade leider keine geben

                                      Die Bitte richtete sich in die Runde der hier Lesenden, nicht direkt an dich.

                                      War mir schon klar, so egozentrisch bin ich dann auch nicht ;-) Ich wollte nur nicht unhöflich sein und wenn ich antworte darauf eingehen.

                                      So, ich habe mal ein wenig herumgespielt. Was hälst du hiervon?

                                      $(document).ready(function() {
                                          var targetlist = '<nav><ul class="tabswitcher"></ul></nav>', targets = '';
                                          $('.cf-tab-content').prepend(targetlist);
                                          $('.cf-tab-pane').each(function(){
                                            targets += '<li><a href="#' + this.id + '">' + $(this).children('legend').text() + '</a></li>';
                                          });
                                      
                                          $('.tabswitcher').append(targets);
                                          $("body").addClass("tabs-active");
                                      
                                          var hash = document.location.hash;
                                          if(!hash) {
                                            var first = $(".tabswitcher li a:first");
                                            hash = first.attr("href");
                                            history.pushState({}, first.text(), hash);
                                          }
                                      
                                          $(hash).addClass('active');
                                      
                                          $('.tabswitcher li a').on('click', function(ev) {
                                            ev.preventDefault();
                                            $(".cf-tab-pane.active").removeClass("active");
                                      
                                            var anchor = $(this).attr("href");
                                            $(anchor).addClass("active");
                                            history.pushState({}, $(this).text(), anchor);
                                          });
                                      
                                          $(window).on('popstate', function() {
                                            var anchor = document.location.hash || $(".tabswitcher li a:first").attr("href");
                                            $(".cf-tab-pane.active").removeClass("active");
                                            $(anchor).addClass("active");
                                          });
                                      });
                                      
                                      .tabs-active {
                                        .tabswitcher li {
                                      	  margin-right: 0.3em;
                                        }
                                        .cf-tab-pane:not(.active) {
                                      	  display: none;
                                        }
                                      }
                                      

                                      LG,
                                      CK

                                      1. Hallo Auge,

                                        etwas überarbeitet:

                                        $(document).ready(function() {
                                          var targetlist = '<nav><ul class="tabswitcher"></ul></nav>', targets = '';
                                          $('.cf-tab-content').prepend(targetlist);
                                          $('.cf-tab-pane').each(function(){
                                            targets += '<li><a href="#' + this.id + '">' + $(this).children('legend').text() + '</a></li>';
                                          });
                                        
                                          $('.tabswitcher').append(targets);
                                          $("body").addClass("tabs-active");
                                        
                                          var hash = document.location.hash;
                                          if(!hash) {
                                            var first = $(".tabswitcher li a:first");
                                            hash = first.attr("href");
                                            history.pushState({}, first.text(), hash);
                                          }
                                        
                                          $(hash).addClass('active');
                                          $('.tabswitcher a[href="' + hash + '"]').parent().addClass("active");
                                        
                                          $('.tabswitcher li a').on('click', function(ev) {
                                            ev.preventDefault();
                                            $(".cf-tab-pane.active").removeClass("active");
                                            $(".tabswitcher .active").removeClass("active");
                                        
                                            var anchor = $(this).attr("href");
                                            $(anchor).addClass("active");
                                            $(this).parent().addClass("active");
                                        
                                            history.pushState({}, $(this).text(), anchor);
                                          });
                                        
                                          $(window).on('popstate', function() {
                                            var anchor = document.location.hash || $(".tabswitcher li a:first").attr("href");
                                        
                                            $(".cf-tab-pane.active").removeClass("active");
                                            $(".tabswitcher .active").removeClass("active");
                                        
                                            $(anchor).addClass("active");
                                            $('.tabswitcher a[href="' + anchor + '"]').parent().addClass("active");
                                          });
                                        });
                                        
                                        .tabs-active {
                                          .tabswitcher {
                                            border-bottom: 2px solid #C4D4DA;
                                        
                                            li {
                                              margin-right: 0.3em;
                                              border-bottom:0;
                                              border-bottom-left-radius:0;
                                              border-bottom-right-radius:0;
                                            }
                                        
                                            li.active { background-color:#F1F3F4; }
                                        
                                          }
                                        
                                          .cf-tab-pane:not(.active) { display:none; }
                                        }
                                        

                                        Sieht dann so aus:

                                        Einstellungen mit Tabs

                                        LG,
                                        CK

                                        1. Hey,

                                          ich habe das mal so eingebaut.

                                          LG,
                                          CK

                                          1. Hallo Christian Kruse,

                                            ich habe das mal so eingebaut.

                                            gefällt mir ausgesprochen gut. Vielen Dank, auch an @Auge.

                                            Bis demnächst
                                            Matthias

                                            --
                                            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                          2. Hallo,

                                            ich habe das mal so eingebaut.

                                            sieht ansprechend aus und funktioniert anscheinend tadellos.
                                            Danke an alle, die sich dafür engagiert haben.

                                            Allerdings ... mir gefiel es vorher (Langversion, alles am Stück) besser, es war halt immer ein oder sogar mehrere Klicks weniger. Aber mit der Meinung stehe ich wahrscheinlich relativ einsam da.

                                            So long,
                                             Martin

                                            --
                                            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                            1. Hallo

                                              ich habe das mal so eingebaut.

                                              sieht ansprechend aus und funktioniert anscheinend tadellos.
                                              Danke an alle, die sich dafür engagiert haben.

                                              Allerdings ... mir gefiel es vorher (Langversion, alles am Stück) besser, es war halt immer ein oder sogar mehrere Klicks weniger. Aber mit der Meinung stehe ich wahrscheinlich relativ einsam da.

                                              Wenn du konsequent wärst und vollständig auf JavaScript verzichtetest, hättest du deine Langversion. *scnr*

                                              Tschö, Auge

                                              --
                                              Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                              Wolfgang Schneidewind *prust*
                                              1. Hi,

                                                Allerdings ... mir gefiel es vorher (Langversion, alles am Stück) besser, es war halt immer ein oder sogar mehrere Klicks weniger. Aber mit der Meinung stehe ich wahrscheinlich relativ einsam da.

                                                Wenn du konsequent wärst und vollständig auf JavaScript verzichtetest, hättest du deine Langversion. *scnr*

                                                das ist mir schon klar, aber leider hat sich CK im Lauf der Evolution des CForum4 entschlossen, einige "Core Features" nicht mehr ohne JS zu unterstützen (z.B. Thread als gelesen markieren oder Beitrag bewerten, was im alten Forum ein herkömmlicher Link war, der bei entsprechender User-Config einfach mit Status 204 beantwortet wurde). Also habe ich mich irgendwann dazu durchgerungen, für selfhtml.org eine Ausnahmeregelung zu machen.
                                                Zugegeben, das bringt ja auch den einen oder anderen positiven Nebeneffekt, etwa die Formatierungs-Hilfen beim Verfassen eines neuen Postings. Ein gutes Beispiel für sinnvollen und überlegten Einsatz von Javascript, auch wenn ich froh bin, dass man einiges davon in der User-Config deaktivieren kann, etwa das Nachladen von neuen Beiträgen im Hintergrund.

                                                Ciao,
                                                 Martin

                                                --
                                                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                1. Hallo Martin,

                                                  das ist mir schon klar, aber leider hat sich CK im Lauf der Evolution des CForum4 entschlossen, einige "Core Features" nicht mehr ohne JS zu unterstützen (z.B. Thread als gelesen markieren oder Beitrag bewerten, was im alten Forum ein herkömmlicher Link war, der bei entsprechender User-Config einfach mit Status 204 beantwortet wurde).

                                                  Das stimmt nicht.

                                                  LG,
                                                  CK

                                                  1. Hi,

                                                    das ist mir schon klar, aber leider hat sich CK im Lauf der Evolution des CForum4 entschlossen, einige "Core Features" nicht mehr ohne JS zu unterstützen (z.B. Thread als gelesen markieren oder Beitrag bewerten, was im alten Forum ein herkömmlicher Link war, der bei entsprechender User-Config einfach mit Status 204 beantwortet wurde).

                                                    Das stimmt nicht.

                                                    welchen Teil dieses langen Satzes meinst du konkret?

                                                    Ich entsinne mich, dass ich dich in der ersten Zeit, als die neue Forumssoftware in Betrieb war und noch viele Ideen und Wünsche kamen, ein paarmal gebeten habe, eben diese Funktionen doch wieder als ganz gewöhnlichen Link, optional mit 204-Response, zur Verfügung zu stellen. Du hast argumentiert, dass sich das nicht mehr mit dem prinzipiellen Konzept verträgt, was ich nicht wirklich verstanden habe (wahrscheinlich müsste ich dazu tiefer in die Software eintauchen).

                                                    Ich erinnere mich auch, dass du mal eine JS-freie Möglichkeit geschaffen hast, aber die hatte AFAIR derart unangenehme Nebenwirkungen, dass ich sie als unbrauchbar eingestuft habe. Ich meine, das war die Geschichte, dass man nach dem Klick auf so ein Element immer auf irgendeiner völlig anderen Seite landete und für mich nicht nachvollziehbar war, auf welcher.

                                                    Aber die Diskussion ist müßig; ich habe den Status Quo soweit akzeptiert und versuche, auch in meinem Sinn das Beste daraus zu machen, auch wenn mir manche Details nicht gefallen. Tatsächlich ist das aber "Meckern auf hohem Niveau", und wie sehr viele Leute neige ich dazu, das Haar in der Suppe zu finden und zu kritisieren, aber die vorzügliche Spargelcremesuppe gar nicht zu würdigen. Ich neige dazu, zu vergessen, welche Leistung dahintersteckt und dass du das wirklich erstklassige technische Rückgrat des Selfforums alleine stemmst - sowohl im Bezug auf Hirnschmalz als auch Arbeitszeit, die ja in Wirklichkeit Freizeit ist.

                                                    So long,
                                                     Martin

                                                    --
                                                    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                    1. Hallo Martin,

                                                      das ist mir schon klar, aber leider hat sich CK im Lauf der Evolution des CForum4 entschlossen, einige "Core Features" nicht mehr ohne JS zu unterstützen (z.B. Thread als gelesen markieren oder Beitrag bewerten, was im alten Forum ein herkömmlicher Link war, der bei entsprechender User-Config einfach mit Status 204 beantwortet wurde).

                                                      Das stimmt nicht.

                                                      welchen Teil dieses langen Satzes meinst du konkret?

                                                      Den vollständigen natürlich ;-)

                                                      Es ist richtig, dass in der ersten Version die erwähnten Funktionen nur mit JS zur Verfügung standen. Nicht richtig ist, dass das weiterhin so ist. Auch das zurückspringen auf eine andere (falsche) Seite wurde schon länger behoben.

                                                      Ich war hier gar nicht auf Komplimente aus, ich wollte nur klarstellen, dass du hier falsch liegst ;-)

                                                      Aber die Diskussion ist müßig;

                                                      Das sehe ich anders. Wenn es ein Problem gibt, sollte man darüber nachdenken wo die Ursache liegt und das dann fixen. „Unbrauchbar” ist da aber leider nicht besonders hilfreich.

                                                      ich habe den Status Quo soweit akzeptiert und versuche, auch in meinem Sinn das Beste daraus zu machen, auch wenn mir manche Details nicht gefallen. Tatsächlich ist das aber "Meckern auf hohem Niveau", und wie sehr viele Leute neige ich dazu, das Haar in der Suppe zu finden und zu kritisieren, aber die vorzügliche Spargelcremesuppe gar nicht zu würdigen. Ich neige dazu, zu vergessen, welche Leistung dahintersteckt und dass du das wirklich erstklassige technische Rückgrat des Selfforums alleine stemmst - sowohl im Bezug auf Hirnschmalz als auch Arbeitszeit, die ja in Wirklichkeit Freizeit ist.

                                                      Das ist nett, dass du das sagst, danke.

                                                      LG,
                                                      CK

                                                      1. Mahlzeit,

                                                        Es ist richtig, dass in der ersten Version die erwähnten Funktionen nur mit JS zur Verfügung standen. Nicht richtig ist, dass das weiterhin so ist. Auch das zurückspringen auf eine andere (falsche) Seite wurde schon länger behoben.

                                                        nein, das definitiv nicht: Wenn ich meinen Browser starte, habe ich normalerweise drei bis vier Tabs aus dem SELF-Raum offen - die sind in der Session (ja, Opera nennt das auch so) gespeichert. Das sind einmal die Übersichtsseite, dann die Threadliste /self und die von /meta, und gelegentlich ist von der vorherigen Browsersitzung noch eine Wiki-Seite offen.
                                                        Nun sehe ich in der Übersichtsseite natürlich erstmal die nicht-angemeldete Ansicht (ich lasse keine Cookies permanent speichern). Also klicke ich auf Anmelden, gebe meine Zugangsdaten ein und lande dann - oh Wunder! - mal in einem Duplikat einer der Thread-Listen, mal im Duplikat eines Postings, das ich vom Vortag zufällig noch offen hatte.

                                                        So wie ich das Konzept verstanden habe, leitest du da auf die letzte zuvor abgerufene SELF-Ressource zurück, und das geht in die Binsen. Das verträgt sich nicht mit Tabbed Browsing auf Nutzerseite, das Prinzip geht nur auf, wenn der Nutzer streng eingleisig navigiert und um Himmels Willen nicht mehrere Tabs öffnet.
                                                        Den Referer auszuwerten ist zwar auch umstritten, würde aber in diesem Fall vermutlich weniger Verwirrung stiften.

                                                        Ich war hier gar nicht auf Komplimente aus, ich wollte nur klarstellen, dass du hier falsch liegst ;-)

                                                        Na gut, ich lass mich ja gern korrigieren, wenn ich falsch liege.

                                                        ich habe den Status Quo soweit akzeptiert und versuche, auch in meinem Sinn das Beste daraus zu machen, auch wenn mir manche Details nicht gefallen. Tatsächlich ist das aber "Meckern auf hohem Niveau", und wie sehr viele Leute neige ich dazu, das Haar in der Suppe zu finden und zu kritisieren, aber die vorzügliche Spargelcremesuppe gar nicht zu würdigen. Ich neige dazu, zu vergessen, welche Leistung dahintersteckt und dass du das wirklich erstklassige technische Rückgrat des Selfforums alleine stemmst - sowohl im Bezug auf Hirnschmalz als auch Arbeitszeit, die ja in Wirklichkeit Freizeit ist.

                                                        Das ist nett, dass du das sagst, danke.

                                                        Naja, wer meckert, muss auch mal anerkennen. Wie gesagt, das wird allzu oft vergessen, und da schließe ich mich durchaus ein.

                                                        Ciao,
                                                         Martin

                                                        --
                                                        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                        1. Hallo Martin,

                                                          nein, das definitiv nicht: Wenn ich meinen Browser starte, habe ich normalerweise drei bis vier Tabs aus dem SELF-Raum offen - die sind in der Session (ja, Opera nennt das auch so) gespeichert. Das sind einmal die Übersichtsseite, dann die Threadliste /self und die von /meta, und gelegentlich ist von der vorherigen Browsersitzung noch eine Wiki-Seite offen.
                                                          Nun sehe ich in der Übersichtsseite natürlich erstmal die nicht-angemeldete Ansicht (ich lasse keine Cookies permanent speichern). Also klicke ich auf Anmelden, gebe meine Zugangsdaten ein und lande dann - oh Wunder! - mal in einem Duplikat einer der Thread-Listen, mal im Duplikat eines Postings, das ich vom Vortag zufällig noch offen hatte.

                                                          Das ist etwas anderes als das, was du beim markieren beschrieben hast. Und das lässt sich in der Tat auch nicht so ohne weiteres fixen (zumindest nicht, ohne eine schöne Sicherheitslücke aufzureissen).

                                                          So wie ich das Konzept verstanden habe, leitest du da auf die letzte zuvor abgerufene SELF-Ressource zurück, und das geht in die Binsen. […]

                                                          Letzte SELF-Forums-Ressource.

                                                          Das verträgt sich nicht mit Tabbed Browsing auf Nutzerseite, das Prinzip geht nur auf, wenn der Nutzer streng eingleisig navigiert und um Himmels Willen nicht mehrere Tabs öffnet.

                                                          Ich glaube, du hast hier irgendwas falsch verstanden ;-) dieser Mechanismus wird nur angewendet beim Login. Und da funktioniert das insgesamt recht gut, man muss sich halt nur klarmachen, dass es für jedes Verfahren diesbezüglich Probleme gibt.

                                                          Den Referer auszuwerten ist zwar auch umstritten, würde aber in diesem Fall vermutlich weniger Verwirrung stiften.

                                                          Der Referer würde hier gar nichts helfen.

                                                          LG,
                                                          CK

                                                          1. Mahlzeit,

                                                            [...] Also klicke ich auf Anmelden, gebe meine Zugangsdaten ein und lande dann - oh Wunder! - mal in einem Duplikat einer der Thread-Listen, mal im Duplikat eines Postings, das ich vom Vortag zufällig noch offen hatte.

                                                            Das ist etwas anderes als das, was du beim markieren beschrieben hast.

                                                            okay, das kann ich aber nicht wissen. Für mich war es "gleiches Symptom, also vermutlich auch gleiche Ursache".

                                                            Und das lässt sich in der Tat auch nicht so ohne weiteres fixen (zumindest nicht, ohne eine schöne Sicherheitslücke aufzureissen).

                                                            Sicherheit? Die potentielle Sicherheitslücke sehe ich hier nicht. Aber ich hätte das Konzept auch anders aufgezogen: Ich hätte das Login-Formular im Kopfbereich jeder Seite eingebettet, solange der Nutzer nicht eingeloggt ist (als Block, der nur bei :hover oder :focus auf volle Größe ausfährt). Dann würde ein Login-Vorgang ohne Änderung der URL ablaufen.

                                                            Das verträgt sich nicht mit Tabbed Browsing auf Nutzerseite, das Prinzip geht nur auf, wenn der Nutzer streng eingleisig navigiert und um Himmels Willen nicht mehrere Tabs öffnet.

                                                            Ich glaube, du hast hier irgendwas falsch verstanden ;-) dieser Mechanismus wird nur angewendet beim Login.

                                                            Naja, wie gesagt: Das Symptom war damals in beiden Fällen dasselbe, daher ... :-)

                                                            Den Referer auszuwerten ist zwar auch umstritten, würde aber in diesem Fall vermutlich weniger Verwirrung stiften.

                                                            Der Referer würde hier gar nichts helfen.

                                                            Nein? Beim Aufruf des Login-Formulars den Referer in ein hidden-Feld stecken, und nach dem Absenden des Formulars wieder auf die gespeicherte Ressource zurückleiten. Inklusve Plausibilitätskontrollen, versteht sich. Ich weiß nicht, ob das in dein System passt, aber so könnte ich's mir vorstellen. Dann würden diejenigen, die einen glaubwürdigen Referer aus dem Raum forum.selfhtml.org senden, genau dahin zurückgeschickt, wo sie herkommen, die anderen ersatzweise auf die Übersichtsseite.

                                                            So long,
                                                             Martin

                                                            --
                                                            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                            1. Hallo Martin,

                                                              Und das lässt sich in der Tat auch nicht so ohne weiteres fixen (zumindest nicht, ohne eine schöne Sicherheitslücke aufzureissen).

                                                              Sicherheit? Die potentielle Sicherheitslücke sehe ich hier nicht.

                                                              Naja, doch: potentiell andere Redirects unterschieben. In dem Fall kommt ja die URL von der Client-Seite, und das ist immer problematisch dann darauf umzuleiten; so funktionieren ja die CSRF-Attacken. Man schiebt dem User eine URL unter, so dass er darauf zugreift ohne es zu merken.

                                                              Aber ich hätte das Konzept auch anders aufgezogen: Ich hätte das Login-Formular im Kopfbereich jeder Seite eingebettet, solange der Nutzer nicht eingeloggt ist (als Block, der nur bei :hover oder :focus auf volle Größe ausfährt). Dann würde ein Login-Vorgang ohne Änderung der URL ablaufen.

                                                              Das allerdings ist eine gute Idee.

                                                              Den Referer auszuwerten ist zwar auch umstritten, würde aber in diesem Fall vermutlich weniger Verwirrung stiften.

                                                              Der Referer würde hier gar nichts helfen.

                                                              Nein? Beim Aufruf des Login-Formulars den Referer in ein hidden-Feld stecken, […]

                                                              Siehe oben. URLs vom User entgegen nehmen und dahin umleiten halte ich immer für einen potentiellen Angriffspunkt.

                                                              LG,
                                                              CK

                                                              1. Hallo Christian Kruse,

                                                                Aber ich hätte das Konzept auch anders aufgezogen: Ich hätte das Login-Formular im Kopfbereich jeder Seite eingebettet, solange der Nutzer nicht eingeloggt ist (als Block, der nur bei :hover oder :focus auf volle Größe ausfährt). Dann würde ein Login-Vorgang ohne Änderung der URL ablaufen.

                                                                Das allerdings ist eine gute Idee.

                                                                Problematisch ist daran, dass es unter jedem Antworten-Feld einen Link zum Login gibt.

                                                                Bis demnächst
                                                                Matthias

                                                                --
                                                                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                                1. Hallo Matthias,

                                                                  Problematisch ist daran, dass es unter jedem Antworten-Feld einen Link zum Login gibt.

                                                                  Was ist daran problematisch? Der Link würde dann halt bestehen bleiben; allerdings würde ich den mit JS abfangen, das Formular einblenden und das Username-Feld fokussieren.

                                                                  LG,
                                                                  CK

                                                                  1. Hallo Christian Kruse,

                                                                    Der Link würde dann halt bestehen bleiben; allerdings würde ich den mit JS abfangen, das Formular einblenden und das Username-Feld fokussieren.

                                                                    So als overlay? Ich glaube, das ist nicht schön.

                                                                    Bis demnächst
                                                                    Matthias

                                                                    --
                                                                    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                                    1. Hi,

                                                                      Der Link würde dann halt bestehen bleiben; allerdings würde ich den mit JS abfangen, das Formular einblenden und das Username-Feld fokussieren.

                                                                      So als overlay? Ich glaube, das ist nicht schön.

                                                                      nun ja, "schön" ist Geschmackssache. Ich fände das sehr elegant.

                                                                      So long,
                                                                       Martin

                                                                      --
                                                                      Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                                      - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                                    2. Hallo Matthias,

                                                                      Der Link würde dann halt bestehen bleiben; allerdings würde ich den mit JS abfangen, das Formular einblenden und das Username-Feld fokussieren.

                                                                      So als overlay? Ich glaube, das ist nicht schön.

                                                                      Nein, als Leiste, die unterhalb der Kopfleiste aufgeht. Oder so.

                                                                      Und bzgl des anderen Zweigs: dass eine reine CSS-Lösung vermutlich nicht funktionieren wird ist klar, diese ganze Menüs-mit-Hover-Geschichte ist insgesamt einfach zu hakelig und fizzelig.

                                                                      LG,
                                                                      CK

                                                                      1. Hallo Christian Kruse,

                                                                        Nein, als Leiste, die unterhalb der Kopfleiste aufgeht. Oder so.

                                                                        Im Moment kann ich mir nicht vorstellen, wie das aussehen soll. Ich bin auf deinen Entwurf gspannt.

                                                                        Bis demnächst
                                                                        Matthias

                                                                        --
                                                                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                                      2. Hallo Christian,

                                                                        wieso auch nur mit :hover? Man kann auch andere Techniken verwenden, etwa :checked für eine versteckte Checkbox selektieren und deren Label als das interaktive Element verwenden.

                                                                        MfG, at

                                                                2. Hallo,

                                                                  Aber ich hätte das Konzept auch anders aufgezogen: Ich hätte das Login-Formular im Kopfbereich jeder Seite eingebettet, solange der Nutzer nicht eingeloggt ist (als Block, der nur bei :hover oder :focus auf volle Größe ausfährt). Dann würde ein Login-Vorgang ohne Änderung der URL ablaufen.

                                                                  Das allerdings ist eine gute Idee.

                                                                  Problematisch ist daran, dass es unter jedem Antworten-Feld einen Link zum Login gibt.

                                                                  was ist daran problematisch? Der könnte ja auf #login verweisen, und das entsprechende Formular dann durch :target zu voller Größe wachsen (was im übrigen auch :focus und Co. unnötig macht).

                                                                  Ciao,
                                                                   Martin

                                                                  --
                                                                  Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                                  - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                              2. Hallo Christian Kruse,

                                                                Aber ich hätte das Konzept auch anders aufgezogen: Ich hätte das Login-Formular im Kopfbereich jeder Seite eingebettet, solange der Nutzer nicht eingeloggt ist (als Block, der nur bei :hover oder :focus auf volle Größe ausfährt). Dann würde ein Login-Vorgang ohne Änderung der URL ablaufen.

                                                                Das allerdings ist eine gute Idee.

                                                                Wir hatten vor einiger Zeit mal einen Thread dazu (den ich natürlich nicht wiederfinde). Irgendwas war problematisch daran. Ich weiß, das ist nicht sonderlich hilfreich. Aber es hat mich bewogen, auf http://meine-geburtstage.de das Login-Formular aus der grauen Leiste (Desktop-Ansicht) herauszunehmen.

                                                                Bis demnächst
                                                                Matthias

                                                                --
                                                                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                                1. Hallo Matthias Apsel,

                                                                  Wir hatten vor einiger Zeit mal einen Thread dazu (den ich natürlich nicht wiederfinde).

                                                                  Mit den richtigen Suchbegriffen ist er sogar auf Platz 1 der Suchergebnisliste.

                                                                  Bis demnächst
                                                                  Matthias

                                                                  --
                                                                  Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                                              3. Hi,

                                                                Sicherheit? Die potentielle Sicherheitslücke sehe ich hier nicht.

                                                                Naja, doch: potentiell andere Redirects unterschieben. In dem Fall kommt ja die URL von der Client-Seite, und das ist immer problematisch dann darauf umzuleiten; so funktionieren ja die CSRF-Attacken. Man schiebt dem User eine URL unter, so dass er darauf zugreift ohne es zu merken.

                                                                dann ist dir wohl die Passage entgangen, in der ich vorschlug, den Referer bzw. die beim Absenden des Formulars zurückgegebene Info zu überprüfen, ob es eine URL mit dem Host forum.selfhtml.org ist - und falls nicht, einfach stur auf die Foren-Übersichtsseite zu leiten.

                                                                So long,
                                                                 Martin

                                                                --
                                                                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                                - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                                1. Hallo Martin,

                                                                  dann ist dir wohl die Passage entgangen, in der ich vorschlug, den Referer bzw. die beim Absenden des Formulars zurückgegebene Info zu überprüfen, ob es eine URL mit dem Host forum.selfhtml.org ist - und falls nicht, einfach stur auf die Foren-Übersichtsseite zu leiten.

                                                                  Nein. Aber dir scheint entgangen zu sein, dass man auch innerhalb eines Projekts ggfls fiese Redirects machen kann ;-)

                                                                  LG,
                                                                  CK

                                                                  1. Hallo,

                                                                    dann ist dir wohl die Passage entgangen, ...

                                                                    Nein. Aber dir scheint entgangen zu sein, dass man auch innerhalb eines Projekts ggfls fiese Redirects machen kann ;-)

                                                                    das ist mir in der Tat entgangen. Und ich kann mir auch nicht vorstellen, wie durch einen falschen Redirect innerhalb derselben Domain, also unmittelbar in deinem Einfluss- und Wirkungsbereich, ein Problem entstehen sollte. Wer gefälschte Angaben sendet, landet halt irgendwo anders innerhalb des Angebots - so what? Selber schuld.
                                                                    Die Berechtigung zum Abruf bestimmter Ressourcen wird ja sowieso noch überprüft.

                                                                    Nicht dass ich auf einen Umbau drängen will - ich möchte nur deine Bedenken verstehen können.

                                                                    So long,
                                                                     Martin

                                                                    --
                                                                    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                                                                    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                                                                    1. Hallo Martin,

                                                                      das ist mir in der Tat entgangen. Und ich kann mir auch nicht vorstellen, wie durch einen falschen Redirect innerhalb derselben Domain, also unmittelbar in deinem Einfluss- und Wirkungsbereich, ein Problem entstehen sollte. Wer gefälschte Angaben sendet, landet halt irgendwo anders innerhalb des Angebots - so what? Selber schuld.
                                                                      Die Berechtigung zum Abruf bestimmter Ressourcen wird ja sowieso noch überprüft.

                                                                      Die Berechtigung ist ja gerade der Punkt. Der Trick bei CSRF-Attacken ist ja, dass man Requests zusammen bastelt, die einen irgendwohin schicken, damit etwas mit der Rechten des Users ausgelöst wird. Im alten CForum konnte man z.B. Anfangs die URL zum löschen eines Postings als Bild-URL eintragen. Hat dann ein Admin das Posting mit der Bild-URL geöffnet, wurde das referenzierte Posting gelöscht - ein Fehler in der Architektur, der dann mit einem CSRF-Token behoben wurde.

                                                                      Ich verwende hier zwar auch ein CSRF-Token, aber aus dem Bug habe ich halt gelernt sehr vorsichtig zu sein solche Schwachstellen zu öffnen. Ich kann mir konkret gerade auch keinen Angriff vorstellen, aber ich bin auch kein security researcher.

                                                                      Nicht dass ich auf einen Umbau drängen will - ich möchte nur deine Bedenken verstehen können.

                                                                      Alles gut, kritisch zu hinterfragen ist sinnvoll und richtig! Ich habe die Weisheit weder mit Löffeln gefressen noch sie für mich gepachtet ;-)

                                                                      LG,
                                                                      CK

                                            2. Hallo Der Martin,

                                              Allerdings ... mir gefiel es vorher (Langversion, alles am Stück) besser, es war halt immer ein oder sogar mehrere Klicks weniger. Aber mit der Meinung stehe ich wahrscheinlich relativ einsam da.

                                              Im User-CSS

                                              .tabs-active .cf-tab-pane:not(.active) {
                                                  display: block;
                                              }
                                              

                                              Falls dich die Naviagtion noch stört:

                                              .cf-tab-content > nav {
                                                  display: none;
                                              }
                                              

                                              Letzteres kann aber auch Nebenwirkungen haben.

                                              Bis demnächst
                                              Matthias

                                              --
                                              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                          3. Hallo Christian Kruse,

                                            ich habe das mal so eingebaut.

                                            Cool wäre, wenn man nach dem Speichern in dem Tab bleibt, in dem man war, //@Auge

                                            Bis demnächst
                                            Matthias

                                            --
                                            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                            1. Hallo

                                              ich habe das mal so eingebaut.

                                              Cool wäre, wenn man nach dem Speichern in dem Tab bleibt, in dem man war, //@Auge

                                              Das wäre meiner Meinung nach ein sinnvoller Beitrag zur Verwirrungsvermeidung. Nun zähle ich mich nicht zu den JavaScript-Erfahrenen und Christians Lösung ist ja funktionell weiter und um einiges ausgefeilter als mein Prototyp. Ist es sinnvoll, das Fragment an die URL des Action-Attributs anzuhängen? Oder widerspricht das eventuell dem REST-Prinzip, nach dem die Forensoftware arbeitet?

                                              Tschö, Auge

                                              --
                                              Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                              Wolfgang Schneidewind *prust*
                                              1. Hallo Auge,

                                                Ist es sinnvoll, das Fragment an die URL des Action-Attributs anzuhängen?

                                                Das bringt nichts, das wird nicht zum Server übermittelt. M.E.n. wäre die denkbarste Lösung, dass man den aktiven Tab im LocalStorage speichert und dann bei DOMContentReady nicht auf den ersten Tab umleitet, sondern auf den aus dem LocalStorage, mit history.replaceState

                                                LG,
                                                CK

                                        2. Hallo

                                          etwas überarbeitet:

                                          „Etwas“ ist aber stark untertrieben. :-)

                                          Einstellungen mit Tabs

                                          Schick. Wo du's gerade im Screenshot zeigst, wäre da noch die Sache mit der Trennung von Avatar hochladen und Alt-Text vergeben. Ist mein Begehr sinnvoll oder übertrieben oder gar beides?

                                          Tschö, Auge

                                          --
                                          Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                          Wolfgang Schneidewind *prust*
                                          1. Hallo Auge,

                                            Schick. Wo du's gerade im Screenshot zeigst, wäre da noch die Sache mit der Trennung von Avatar hochladen und Alt-Text vergeben. Ist mein Begehr sinnvoll oder übertrieben oder gar beides?

                                            Es ist notiert, aber ich bin noch nicht dazu gekommen das umzusetzen. Diese Woche bin ich auch wieder geschäftlich auf Reisen (das geht mir irgendwie immer mehr auf die Nerven), ich weiß also nicht, ob ich da vor nächster Woche zu komme.

                                            LG,
                                            CK

                                            1. Hallo

                                              [Da] wäre […] noch die Sache mit der Trennung von Avatar hochladen und Alt-Text vergeben.

                                              Es ist notiert, aber ich bin noch nicht dazu gekommen das umzusetzen. Diese Woche bin ich auch wieder geschäftlich auf Reisen (das geht mir irgendwie immer mehr auf die Nerven), ich weiß also nicht, ob ich da vor nächster Woche zu komme.

                                              Die Gewissheit, dass die Anfrage überhaupt angekommen ist, reicht mir. Das selbst, wenn sie auf Ablehnung gestoßen wäre. Ich will bloß nicht in's Leere reden. :-)

                                              Tschö, Auge

                                              --
                                              Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                                              Wolfgang Schneidewind *prust*
                        2. Hej Auge,

                          Könnte ich diese Klasse dazu benutzen, sie, je nach ausgewähltem Abschnitt, zu versetzen?

                          Klar, tu dir keinen Zwang an ;)

                          Ich hab' da nach Rücksprache mit @marctrix mal was vorbereitet

                          Ich finde: das ist viel besser als vorher!

                          Ich habe allerdings nicht viel dazu beigetragen. Ehre wem Ehre gebührt!

                          Marc

                2. Hallo

                  … Einstellungen … Das Formular ist nciht sehr intuitiv und auch serh lang - vielleicht wäre es einerseits sinnvoll, das auf mehrere Seiten/Tabs aufzuteilen.

                  Hmm, die Unterteilung in Abschnitte ist, wenn auch nicht optisch, schon soetwas ähnliches wie Tabs. Es ist eine Unterteilung der Einstellungen. Die einzelnen Abschnitte lassen sich per CSS auch ansprechen. Jeder ist ein fieldset der Klasse cf-tab-pane. Das aktive Fieldset [1], hat zusätzlich die Klasse active. Alle zusammen sind Kind eines div mit der Klasse cf-tab-content. Ich denke, dass sich die Abschnitte, wie bei Tabs üblich, auch einzeln anzeigen lassen sollten.

                  Man könnte auch, wie im alten Forum, eine Navigation zu den Abschnitten anbieten, um diese einzeln anzuspringen. Ob die sinnvoll darzustellen ist, halte ich aber für fraglich. Die zusätzliche Navigation am Desktop neben dem Formular anzuzeigen, ist einfach. Auf Mobilgeräten mit kleineren Viewports würde sie jedoch, ohne weiteren Aus-und-Einblendklimbim, das Formular aus dem Fokus des Benutzers verdrängen.

                  Andererseits wäre es schön, wenn es zu den einzelnen Feldern Hinweise zum Ausfüllen gäbe.

                  Für einige der Einstellungen ist das gewiss sinnvoll, gerade, wenn sich einzelne Einstellungen gegenseitig in ihrer Funktion beeinflussen. Andere Einstellungen erklären sich hingegen von selbst.

                  Bei den Freitext-Feldern "inline-JS" und "inline-CSS" vielleicht sogar Buttons zur automatischen Übernahme "populärer" Codeschnipsel, z. B. um eigene Beiträge hervorzuheben oder eben Links in einem neuen Tab zu öffnen.

                  Zu bedenken gebe ich, dass diese populären Codeschnipsel aber auch eigenen Verwaltungsaufwand mit sich brächten. Den könnten wir mit einem Sammelrepo auf Github zumindest begrenzen.

                  Tschö, Auge

                  --
                  Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                  Wolfgang Schneidewind *prust*

                  1. Wie auch immer der Zustand „active“ festgelegt wird. ↩︎

                  Folgende Beiträge verweisen auf diesen Beitrag:

                  1. Hallo Auge,

                    Hmm, die Unterteilung in Abschnitte ist, wenn auch nicht optisch, schon soetwas ähnliches wie Tabs.

                    Es waren früher auch mal welche, als hier noch botstrap am Start war.

                    Zu bedenken gebe ich, dass diese populären Codeschnipsel aber auch eigenen Verwaltungsaufwand mit sich brächten. Den könnten wir mit einem Sammelrepo auf Github zumindest begrenzen.

                    lieber im Wiki Tipps und Ticks

                    Bis demnächst
                    Matthias

                    --
                    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                    1. Hallo

                      Hmm, die Unterteilung in Abschnitte ist, wenn auch nicht optisch, schon soetwas ähnliches wie Tabs.

                      Es waren früher auch mal welche, als hier noch botstrap am Start war.

                      Das war aber noch zu Zeiten des Testforums, oder? Das ist auch schon wieder lange her. ich habe grad' vor ein paar Wochen in irgendeinem Browser beim Aufräumen der Lesezeichen eines dorthin gefunden und gelöscht. :-)

                      Zu bedenken gebe ich, dass diese populären Codeschnipsel aber auch eigenen Verwaltungsaufwand mit sich brächten. Den könnten wir mit einem Sammelrepo auf Github zumindest begrenzen.

                      lieber im Wiki Tipps und Ticks

                      Oder so.

                      Tschö, Auge

                      --
                      Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                      Wolfgang Schneidewind *prust*
                    2. Hallo,

                      lieber im Wiki Tipps und Ticks

                      fehlt da nicht noch der dritte von Donalds Neffen?

                      Gruß
                      Kalk

              2. Hallo Christian Kruse,

                können wir das irgendwie in eine FAQ oder so aufnehmen? Dann würde ich das Feature für die Links einfach entfernen und damit eine Menge Komplexität reduzieren…

                dafür!

                Bis demnächst
                Matthias

                --
                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
              3. Hallo

                Apropos Benutzereinstellungen …

                können wir das irgendwie in eine FAQ oder so aufnehmen? Dann würde ich das Feature für die Links einfach entfernen und damit eine Menge Komplexität reduzieren…

                Mir ist beim studieren des Quelltextes der Einstellungsseite ein Schreibfehler im Alt-Text meines Avatars aufgefallen. Nun kann ich zwar einen neuen Avatar hochladen und infolge dessen einen neuen Alt-Text vergeben, ich kann den vorhandenen Alt-Text des vorhandenen Avatars aber nicht verändern.

                Ich halte es für sinnvoll, diese beiden Punkte (hochladen und Alt-Text) voneinander zu trennen. Der Punkt „Alt-Text des Avatars“ soll natürlich nicht angezeigt werden, wenn kein eigener Avatar vorhanden ist.

                Tschö, Auge

                --
                Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
                Wolfgang Schneidewind *prust*

                Folgende Beiträge verweisen auf diesen Beitrag:

                1. Hallo Auge,

                  Ich halte es für sinnvoll, diese beiden Punkte (hochladen und Alt-Text) voneinander zu trennen. Der Punkt „Alt-Text des Avatars“ soll natürlich nicht angezeigt werden, wenn kein eigener Avatar vorhanden ist.

                  Ich halte es nach einiger Überlegung eher für sinnvoll, den Alt-Text leer zu lassen. Der Name steht direkt daneben, und ein User mit Screenreader würde am ehesten davon profitieren, wenn der Avatar einfach übersprungen wird. Oder sehe ich das falsch?

                  Edit: Auf der anderen Seite verlinkt der Avatar auf die User-Seite… hm. Schwierig.

                  Dem User möchte ich das ungern überlassen, davon hängt doch einiges an Accessibility ab, und ich habe das doofe Gefühl, dass das nicht unbedingt immer richtig[tm] eingesetzt würde.

                  Edit 2: vielleicht ein leerer Alt-Text und dem Profil-Link ein title="Benutzer-Profil Auge" geben?

                  LG,
                  CK

                  1. Hallo Christian Kruse,

                    Ich halte es nach einiger Überlegung eher für sinnvoll, den Alt-Text leer zu lassen. Der Name steht direkt daneben, und ein User mit Screenreader würde am ehesten davon profitieren, wenn der Avatar einfach übersprungen wird. Oder sehe ich das falsch?

                    Edit: Auf der anderen Seite verlinkt der Avatar auf die User-Seite… hm. Schwierig.

                    Dem User möchte ich das ungern überlassen, davon hängt doch einiges an Accessibility ab, und ich habe das doofe Gefühl, dass das nicht unbedingt immer richtig[tm] eingesetzt würde.

                    Edit 2: vielleicht ein leerer Alt-Text und dem Profil-Link ein title="Benutzer-Profil Auge" geben?

                    Vielleicht mal den @marctrix fragen?

                    Bis demnächst
                    Matthias

                    --
                    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                    1. Hej Matthias,

                      Ich halte es nach einiger Überlegung eher für sinnvoll, den Alt-Text leer zu lassen. Der Name steht direkt daneben, und ein User mit Screenreader würde am ehesten davon profitieren, wenn der Avatar einfach übersprungen wird. Oder sehe ich das falsch?

                      Am besten wäre Avatar und Name in einem Link. Der Alternativ-Text für den Avatar wäre dann "Zum Profil vom Benutzer"

                      Vorgelesen würde dann z. B. "Zum Profil von Benutzer Marctrix"

                      Der Alt-Text soll erkennbar machen, was zu sehen ist und welche Funktion hinterlegt ist.

                      Auch so etwas wäre denkbar

                      <a href="#"><span class="Visuallyhidden">Zum Profil von Benutzer </span>Marctrix</a>
                      

                      Der Avatar könnte dann per CSS eingefügt werden - wenn er als reiner Schmuck begriffen wird (was wohl der Fall sein dürfte, denn die Bildchen sind doch in der Regel mehr oder weniger sinnbefreit.

                      Weiter ist zu bedenken, dass title-Attribute von Screenreadern defaultmäßig nicht vorgelesen werden. Diese enthalten einfach zu oft redundante Informationen.

                      Das würde sich hier auch anbieten, denn die Information "zum Profil" ist bei meinen obigen Vorschlägen NUR für blinde lesbar. Wer sehen kann ist jetzt im Nachteil. Eine mögliche Lösung: in den title-Wert dasselbe eintragen, was im alt-Text steht ( darum sind eingeschaltete title-Attribute so nervig - man hört dann alles doppelt) oder - meiner Meinung nach hier besser: den Wert des alt-Attributes nutzen, um es in einem ::before oder ::after auszugeben. Entweder ständig sichtbar (besser für die Zugänglichkeit, aber jetzt für sehende nervig, wegen der Wiederholung) oder nur bei :hover.

                      Für Touchscreens ohne Mouseover muss dann eine extra Lösung her, lässt sich per CSS aber ebenfalls lösen (entweder wird der alt-Text immer angezeigt oder per active und :focus - letzteres brauchen wir eh für die Freunde der Tastatur).

                      Bleibt nur noch die Darstellung bei abgeschaltetem CSS - da hat title für Mausnutzer wieder Vorteile.

                      Ideal wäre hier aber wohl die Lösung mit dem Text, der per CSS verborgen wird - weil der bei abgeschaltetem CSS wieder für jeden sichtbar ist.

                      Habe das jetzt mal runtergeschrieben, hoffe alles bedacht zu haben. HTML habe ich mir auch nicht angeschaut, da ich mit dem iPhone unterwegs bin und hier keine Entwicklerwerkzeuge zur Verfügung habe - falls jemand welche kennt, würde er/sie mich glücklich machen!

                      Marc

                      1. Hallo marctrix,

                        Am besten wäre Avatar und Name in einem Link. Der Alternativ-Text für den Avatar wäre dann "Zum Profil vom Benutzer"

                        Vorgelesen würde dann z. B. "Zum Profil von Benutzer Marctrix"

                        Und jetzt bitte nochmal in den Threadbaum schauen ;-) das ist so nicht machbar.

                        Der Avatar könnte dann per CSS eingefügt werden

                        Nein, nicht wirklich. Ich kann ja nicht für jeden User eine CSS-Regel erstellen (auch wenn ich es lieber hätte). Das ist einfach nicht praktikabel.

                        Weiter ist zu bedenken, dass title-Attribute von Screenreadern defaultmäßig nicht vorgelesen werden. Diese enthalten einfach zu oft redundante Informationen.

                        Schade; ich verstehe allerdings die Problematik.

                        Vielleicht sollte man eher sowas in diese Richtung anstreben:

                        <span class="author">
                          <span class="registered-user">
                            <a title="Benutzer marctrix" class="user-link" href="profilelink">
                              <span class="visually-hidden">Zum Profil von </span>
                              <img class="avatar" src="..." alt="Benutzer Mactrix" title="Zum Profil von Benutzer Mactrix" />
                            </a>
                            <a href="posting-link" aria-hidden="true">marctrix</a>
                          </span>
                        </span>
                        <a href="posting-link">
                          <time datetime="...">...</time>
                        </a>
                        

                        LG,
                        CK

                        1. Hallo Christian Kruse,

                          Nein, nicht wirklich. Ich kann ja nicht für jeden User eine CSS-Regel erstellen (auch wenn ich es lieber hätte). Das ist einfach nicht praktikabel.

                          Warum nicht? Jetzt holst du den Pfad zum Avatar doch auch jedesmal aus der DB?

                          Warum kannst du nicht eine CSS-Ressource erstellen mit

                          .registered-user > a:first-child::before {
                              content: url("/images/thumb/missing.png");
                          }
                          
                          .registered-user.ID > a:first-child::before {
                              content: url("/images/thumb/ID.png");
                          }
                          

                          Und in der Nachricht statt

                          <span class="registered-user">
                          	<a href="/users/ID" class="user-link" title="Benutzer Name">
                          		<img alt="Missing" src="/images/thumb/missing.png" class="avatar">
                          	</a>
                          	<a href="/users/ID">Name</a>
                          </span>
                          

                          dies

                          <span class="registered-user ID">
                          	<a href="/users/ID" title="Benutzer Mona Maciejewski">Mona Maciejewski</a>
                          </span>
                          

                          Und im Threadbaum statt

                          <span class="registered-user">
                          	<a href="/users/ID" class="user-link" title="Benutzer Name">
                          		<img alt="Missing" src="/images/thumb/missing.png" class="avatar">
                          	</a>
                          	<a href="Link zur Nachricht">Name</a>: </span>
                          	...
                          </span>
                          

                          dies

                          <span class="registered-user ID">
                          	<a href="/users/ID" class="user-link" title="Benutzer Name"> </a>
                          	<a href="Link zur Nachricht">Name</a>: </span>
                          	...
                          </span>
                          

                          Bis demnächst
                          Matthias

                          --
                          Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                          1. Hallo Matthias,

                            Warum nicht? Jetzt holst du den Pfad zum Avatar doch auch jedesmal aus der DB?

                            Warum kannst du nicht eine CSS-Ressource erstellen mit [...]

                            • Wir haben zur Zeit etwas über 4k registrierte User. Das heisst, ich müsste eine Ressource erstellen, die potentiell über 4k CSS-Regeln entält - zusätzlich zu den bestehenden. Auch wenn es real weniger sind, das scheint mir wirklich nicht sinnvoll.
                            • die CSS-Ressource müsste entweder on the fly erstellt werden, was ich für ein Performance-Problem halte, oder sie müsste generiert werden, wenn ein User seinen Account löscht oder einen Account anlegt. Viel Komplexität.

                            Von Minifying will ich gar nicht erst anfangen.

                            LG,
                            CK

                            1. Hallo Christian Kruse,

                              Warum nicht? Jetzt holst du den Pfad zum Avatar doch auch jedesmal aus der DB?

                              Warum kannst du nicht eine CSS-Ressource erstellen mit [...]

                              • Wir haben zur Zeit etwas über 4k registrierte User. Das heisst, ich müsste eine Ressource erstellen, die potentiell über 4k CSS-Regeln entält - zusätzlich zu den bestehenden.

                              Und wenn du dem User diese Regel ganz frech mit einem aussagekräftigen Kommentar versehen in sein User-CSS schreibst?

                              Dann bleibt von den 4k neuen Regeln eine übrig.

                              EDIT Das ist Quatsch.

                              Bis demnächst
                              Matthias

                              --
                              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                              1. Hallo Matthias Apsel,

                                Und wenn du dem User diese Regel ganz frech mit einem aussagekräftigen Kommentar versehen in sein User-CSS schreibst?

                                EDIT: Erst denken dann schreiben

                                Bis demnächst
                                Matthias

                                --
                                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                                1. Hallo Matthias,

                                  EDIT: Erst denken dann schreiben

                                  This! 😂

                                  LG,
                                  CK

                            2. Hallo Christian Kruse,

                              • die CSS-Ressource müsste […] generiert werden, wenn ein User seinen Account löscht oder einen Account anlegt. Viel Komplexität.

                              Sie müsste geändert werden, wenn ein Avatar geändert wird. Wie viele Nutzer haben einen Avatar? 50?

                              Bis demnächst
                              Matthias

                              --
                              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                        2. Hej Christian,

                          Am besten wäre Avatar und Name in einem Link. Der Alternativ-Text für den Avatar wäre dann "Zum Profil vom Benutzer"

                          Vorgelesen würde dann z. B. "Zum Profil von Benutzer Marctrix"

                          Und jetzt bitte nochmal in den Threadbaum schauen ;-) das ist so nicht machbar.

                          erwischt ;-)

                          Der Avatar könnte dann per CSS eingefügt werden

                          Nein, nicht wirklich. Ich kann ja nicht für jeden User eine CSS-Regel erstellen (auch wenn ich es lieber hätte). Das ist einfach nicht praktikabel.

                          ;-) nicht zu Ende gedacht - ich hatte ja angedeutet, dass ich das so runter geschrieben habe... - kommt dann leider manchmal so was bei rum. Mir ging es darum, die Probleme und die Vor- und Nachteile verschiedener Lösungsansätze aufzuzeigen, weil ich am Handy eben keine Quellcode-Analyse machen kann, musste ich allgemein bleiben und habe nicht alles bis zum Ende durchdacht. Abgesehen, dass solche Dinge manchmal erst bei der Umsetzung auffallen, weil ein ganzes team nicht an das scheinbar offensichtliche gedacht hat...

                          Weiter ist zu bedenken, dass title-Attribute von Screenreadern defaultmäßig nicht vorgelesen werden. Diese enthalten einfach zu oft redundante Informationen.

                          Schade; ich verstehe allerdings die Problematik.

                          Vielleicht sollte man eher sowas in diese Richtung anstreben:

                          <span class="author">
                            <span class="registered-user">
                              <a title="Benutzer marctrix" class="user-link" href="profilelink">
                                <span class="visually-hidden">Zum Profil von </span>
                                <img class="avatar" src="..." alt="Benutzer Mactrix" title="Zum Profil von Benutzer Mactrix" />
                              </a>
                              <a href="posting-link" aria-hidden="true">marctrix</a>
                            </span>
                          </span>
                          <a href="posting-link">
                            <time datetime="...">...</time>
                          </a>
                          

                          Ich denke, das ist der beste Kompromiss!

                          Gruß, Marc

                          1. Hallo marctrix,

                            Ich denke, das ist der beste Kompromiss!

                            Super - hab das mal so umgesetzt. Danke! :-)

                            LG,
                            CK

                        3. @@Christian Kruse

                          Am besten wäre Avatar und Name in einem Link.

                          Ja!!1elf Avatar und Name gehören zusammen; der Avatar steht ja für einen Nutzer.

                          Und jetzt bitte nochmal in den Threadbaum schauen ;-) das ist so nicht machbar.

                          Wieso „nicht machbar“?

                          Ich finde es verwirrend, dass der verlinkte Name nicht zum Nutzerprofil führt, sondern zum Posting. Zumal das nicht konsistent ist: bei der Angabe des Autors über einem Posting führt der Name ja doch zum Profil.

                          Und wie kommt man vom Threadbaum zum Profil von Nutzern, die keinen Avatar haben?

                          So richtig durchdacht scheint mir die gegenwärtige Lösung nicht zu sein.

                          LLAP 🖖

                          --
                          “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                          Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
                          1. Hallo,

                            Und wie kommt man vom Threadbaum zum Profil von Nutzern, die keinen Avatar haben?

                            Nutzer ohne Avatar sind halt profillos.

                            So richtig durchdacht scheint mir die gegenwärtige Lösung nicht zu sein.

                            es gab bereits eine längere Diskussion darüber.

                            Gruß
                            Kalk

                            1. @@Tabellenkalk

                              Und wie kommt man vom Threadbaum zum Profil von Nutzern, die keinen Avatar haben?

                              Nutzer ohne Avatar sind halt profillos.

                              Nein, das sind sie nicht. Es gibt eine Profilseite, nur dass der Link dorthin fehlt.

                              es gab bereits eine längere Diskussion darüber.

                              Und die Argumante waren? Ein Link zu dieser Diskussion hätte deinem Posting Sinn gegeben.

                              LLAP 🖖

                              --
                              “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                              Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
                              1. Hallo Gunnar,

                                Und wie kommt man vom Threadbaum zum Profil von Nutzern, die keinen Avatar haben?

                                Nutzer ohne Avatar sind halt profillos.

                                Nein, das sind sie nicht. Es gibt eine Profilseite, nur dass der Link dorthin fehlt.

                                Nein.

                                Benutzer ohne Profil haben keinen Avatar. Benutzer mit Profil haben einen Avatar, unabhängig davon ob sie einen hochgeladen haben oder nicht.

                                es gab bereits eine längere Diskussion darüber.

                                Und die Argumante waren? Ein Link zu dieser Diskussion hätte deinem Posting Sinn gegeben.

                                Meinst du nicht, dass du das auch selbst raussuchen kannst? Zumal ich recht sicher bin, dass du damals daran beteiligt warst.

                                LG,
                                CK

                                1. @@Christian Kruse

                                  Benutzer mit Profil haben einen Avatar, unabhängig davon ob sie einen hochgeladen haben oder nicht.

                                  Ah, das wusste ich nicht. I stand corrected.

                                  Was nichts daran ändert, dass Avatar und Name eine Einheit bilden (sollten). Und dass die Verlinkung des Namens inkonsistent ist: mal zum Profil, mal zum Posting.

                                  Meinst du nicht, dass du das auch selbst raussuchen kannst?

                                  Mit geeigneten Suchbegriffen sicher. Die wären?

                                  Zumal ich recht sicher bin, dass du damals daran beteiligt warst.

                                  Nö, die ging an mir vorbei.

                                  LLAP 🖖

                                  --
                                  “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                                  Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
                              2. Hallo,

                                Ein Link

                                bitte sehr

                                Gruß
                                Kalk

                        4. @@Christian Kruse

                          Vielleicht sollte man eher sowas in diese Richtung anstreben:

                          <span class="author">
                            <span class="registered-user">
                              <a title="Benutzer marctrix" class="user-link" href="profilelink">
                                <span class="visually-hidden">Zum Profil von </span>
                                <img class="avatar" src="..." alt="Benutzer Mactrix" title="Zum Profil von Benutzer Mactrix" />
                              </a>
                              <a href="posting-link" aria-hidden="true">marctrix</a>
                            </span>
                          </span>
                          <a href="posting-link">
                            <time datetime="...">...</time>
                          </a>
                          

                          Wozu <span class="visually-hidden">Zum Profil von </span>?

                          Einfach <img class="avatar" src="..." alt="Zum Profil von Benutzer Mactrix" /> – mit aussagekräftigem alt-Text; ohne nerviges title.

                          Und wozu Klassen? <voice of="Doc Emmett Brown">Wo wir hingehen, brauchen wir keine Klassen!</voice>

                          <span property="author" typeof="Person">
                              <a property="sameAs" href="profilelink">
                                <img property="image" src="..." alt="Zum Profil von Benutzer Mactrix" />
                              </a>
                              <a href="posting-link" aria-hidden="true">marctrix</a>
                            </span>
                          </span>
                          <a href="posting-link">
                            <time datetime="...">...</time>
                          </a>
                          

                          Die Verwendung von RDFa-property und Schema.org-Vokabular statt class macht die Auszeichnung „semantischer“. Und stylen lässt sich das über Attributselektoren genauso.

                          Hier fehlt dann aber natürlich noch weiter oben type="Comment" (Comment wäre wohl der hier passende Subtyp von CreativeWork) und vocab="http://schema.org/".

                          LLAP 🖖

                          --
                          “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                          Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|

                          Folgende Beiträge verweisen auf diesen Beitrag:

                      2. Hi,

                        Der Avatar könnte dann per CSS eingefügt werden - wenn er als reiner Schmuck begriffen wird (was wohl der Fall sein dürfte, denn die Bildchen sind doch in der Regel mehr oder weniger sinnbefreit.

                        Mein kleiner (Nacht)Waechter ist jetzt schwer beleidigt!!!

                        cu,
                        Andreas a/k/a MudGuard

                        1. Hej MudGuard,

                          Mein kleiner (Nacht)Waechter ist jetzt schwer beleidigt!!!

                          Ich hoffe, du sprichst von deinem Avatar...

                          Marc

                          1. Hi,

                            Mein kleiner (Nacht)Waechter ist jetzt schwer beleidigt!!!

                            Ich hoffe, du sprichst von deinem Avatar...

                            kleiner, nicht großer ;-)

                            cu,
                            Andreas a/k/a MudGuard

                            1. @@MudGuard

                              Hi,

                              Mein kleiner (Nacht)Waechter ist jetzt schwer beleidigt!!!

                              Ich hoffe, du sprichst von deinem Avatar...

                              kleiner, nicht großer ;-)

                              YMMD.

                              Hat dieses Forum keinen code of conduct, der solche – ähm – Diskussionen untersagt? Wenn ja, sollte er geändert werden. ;-D

                              LLAP 🖖

                              --
                              “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                              Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
                              1. Hi,

                                Mein kleiner (Nacht)Waechter ist jetzt schwer beleidigt!!!

                                Ich hoffe, du sprichst von deinem Avatar...

                                kleiner, nicht großer ;-)

                                YMMD.

                                Hat dieses Forum keinen code of conduct, der solche – ähm – Diskussionen untersagt?

                                Was hast Du gegen Avatar-Diskussionen???

                                cu,
                                Andreas a/k/a MudGuard

                      3. @@marctrix

                        Der Avatar könnte dann per CSS eingefügt werden - wenn er als reiner Schmuck begriffen wird (was wohl der Fall sein dürfte, denn die Bildchen sind doch in der Regel mehr oder weniger sinnbefreit.

                        Au contraire, mon capitaine !

                        Der Sinn von Avataren ist nicht unbedingt, die Person auf dem Bild zu erkennen, sondern das Bild einer Person zuzuordnen.

                        Auges Avatar tut dies bestens.

                        Auch – man gestatte mir einen Blick über den Tellerrand dieses Forums – @webrockers Avatar.

                        Für mich gehören Avatare ganz klar zum Inhalt: <img> im Markup, nicht Hintergrundbild per CSS.

                        LLAP 🖖

                        --
                        “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
                        Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
                        1. Hej Gunnar,

                          Der Avatar könnte dann per CSS eingefügt werden - wenn er als reiner Schmuck begriffen wird (was wohl der Fall sein dürfte, denn die Bildchen sind doch in der Regel mehr oder weniger sinnbefreit.

                          Au contraire, mon capitaine !

                          Der Sinn von Avataren ist nicht unbedingt, die Person auf dem Bild zu erkennen, sondern das Bild einer Person zuzuordnen.

                          Auges Avatar tut dies bestens.

                          Auch – man gestatte mir einen Blick über den Tellerrand dieses Forums – @webrockers Avatar.

                          Du hast gerade die Ausnahme zur Regel erhoben :-)

                          Für mich gehören Avatare ganz klar zum Inhalt:

                          Schön wäre es... - die meisten Avatare mögen einen Sinn für den Träger des Avatars haben - für Fremde ist der erstens wohl (fast) nie ersichtlich und zweitens - wenn er denn enträtselt wurde, hat er doch nur sehr selten eine dem Verständnis dienende Bedeutung.

                          Aaaaber: Falls doch, dann MUSS auch das, was der Avatar darstellt, zugänglich sein. Dann reicht mein genannter Vorschlag (und die bereits durchgeführte Umsetzung) nicht aus, der alt-Text muss auch noch beschreiben, WAS zu sehen ist!

                          Marc

              4. Hallo Christian Kruse,

                können wir das irgendwie in eine FAQ oder so aufnehmen?

                erledigt.

                Dann würde ich das Feature für die Links einfach entfernen und damit eine Menge Komplexität reduzieren…

                Das musst du leider selbst machen, denn mit einem bloßen Entfernen in links_helper.rb, cf_kramdown sowie im HTML ist es nicht getan.

                Bis demnächst
                Matthias

                --
                Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                1. Hallo Matthias,

                  Das musst du leider selbst machen, denn mit einem bloßen Entfernen in links_helper.rb, cf_kramdown sowie im HTML ist es nicht getan.

                  Im Wesentlichen ist es das, doch ;)

                  [x] done.

                  Ich sortiere jetzt die offenen Threads auch anders herum, so dass nicht mehr die ersten 5 offenen Threads gelistet werden sondern die letzten 5 offenen Threads. Die Threads von vor Jahren sind ja nicht mehr wirklich interessant…

                  LG,
                  CK

                  1. Moin,

                    Ich sortiere jetzt die offenen Threads auch anders herum, so dass nicht mehr die ersten 5 offenen Threads gelistet werden sondern die letzten 5 offenen Threads. Die Threads von vor Jahren sind ja nicht mehr wirklich interessant…

                    das ist natürlich wahr; ich hatte mich schon über Sinn und Zweck dieser Ansicht gewundert. So wie jetzt ist es tatsächlich sinnvoller. ;-)

                    Allerdings hast du die Rubrik mit "Länger unbeantwortete Threads" überschrieben. Was hast du da als Limit angesetzt? Wie alt muss ein Thread sein, um "länger" unbeantwortet zu sein?

                    So long,
                     Martin

                    --
                    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                    1. Hallo Martin,

                      Ich sortiere jetzt die offenen Threads auch anders herum, so dass nicht mehr die ersten 5 offenen Threads gelistet werden sondern die letzten 5 offenen Threads. Die Threads von vor Jahren sind ja nicht mehr wirklich interessant…

                      das ist natürlich wahr; ich hatte mich schon über Sinn und Zweck dieser Ansicht gewundert.

                      Ich hatte in den Test-Daten einfach generell alte Daten, da ist das nicht aufgefallen. Und dann fehlte mir die Zeit, das zu ändern.

                      Allerdings hast du die Rubrik mit "Länger unbeantwortete Threads" überschrieben. Was hast du da als Limit angesetzt? Wie alt muss ein Thread sein, um "länger" unbeantwortet zu sein?

                      Der Zeitraum ist nicht relevant, ich habe die Überschrift einfach übernommen, man sollte sie ändern.

                      LG,
                      CK

                      1. Hallo Christian Kruse,

                        Der Zeitraum ist nicht relevant,

                        Ursprünglich sollte er aber Berücksichtigung finden. issue 538

                        ich habe die Überschrift einfach übernommen, man sollte sie ändern.

                        Vielleicht in „Threads ohne Antworten“? Klingt irgendwie gefälliger als „unbeantwortete Threads“

                        Bis demnächst
                        Matthias

                        --
                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                        1. Hallo Matthias,

                          ich habe die Überschrift einfach übernommen, man sollte sie ändern.

                          Vielleicht in „Threads ohne Antworten“? Klingt irgendwie gefälliger als „unbeantwortete Threads“

                          Ist geändert.

                          Ich habe auch den Spinner verändert, das ist jetzt auch ein SVG; ausserdem wird jetzt bei den AJAX-Aktionen in der Voting-Area sowie den Thread- und Message-Actions (interessant markieren et al) auch ein Spinner gesetzt.

                          Der Link sollte auf https://forum.selfhtml.org/all?only_wo_answer=yes&srt=yes zeigen

                          [x] done

                          Du bist ja schnell :-)

                          Man nennt mich auch Speedy Gonzales ;-)

                          LG,
                          CK

                          1. Hallo Christian Kruse,

                            Ich habe auch den Spinner verändert, das ist jetzt auch ein SVG; ausserdem wird jetzt bei den AJAX-Aktionen in der Voting-Area sowie den Thread- und Message-Actions (interessant markieren et al) auch ein Spinner gesetzt.

                            Hm. Mir fällt da gar nichts auf. Hast du vielleicht vergessen, das SVG hochzuladen?

                            Bis demnächst
                            Matthias

                            --
                            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                            1. Hallo Matthias,

                              Hm. Mir fällt da gar nichts auf. Hast du vielleicht vergessen, das SVG hochzuladen?

                              Nein; aber wenns zu schnell geht, sieht mans natürlich nicht ;)

                              LG,
                              CK

                      2. Hallo Christian Kruse,

                        Der Link sollte auf https://forum.selfhtml.org/all?only_wo_answer=yes&srt=yes zeigen

                        Bis demnächst
                        Matthias

                        --
                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
                      3. Hallo Christian Kruse,

                        Du bist ja schnell :-)

                        Bis demnächst
                        Matthias

                        --
                        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
            2. Hej Matthias,

              Dieses Skript fügt das target-Attribut an den Link zur problematischen Seite sowie an alle Links innerhalb von Beiträgen an. Damit bin ich sehr zufrieden.

              Ich hätte gern die folgende Variante:

              $(document).ready(function(){
                $(".posting-content a:not([href^=https://forum.selfhtml.org]), .problematic-site a").each(function(){$(this).attr('target', '_blank');})
              })
              

              Aber: Ich habe das mal einfach in das Feld "eigenes Inline-JS" in den Einstellungen kopiert. Das funktioniert nicht. Was fehlt noch?

              Marc

              1. Hallo marctrix,

                $(document).ready(function(){
                  $(".posting-content a:not([href^=https://forum.selfhtml.org]), .problematic-site a").each(function(){$(this).attr('target', '_blank');})
                })
                

                Aber: Ich habe das mal einfach in das Feld "eigenes Inline-JS" in den Einstellungen kopiert. Das funktioniert nicht. Was fehlt noch?

                Matthias hat vergessen den Attributs-Wert in Anführungszeichen zu packen. Das hier geht:

                $(document).ready(function(){
                  $(".posting-content a:not([href^='https://forum.selfhtml.org']), .problematic-site a").each(function(){$(this).attr('target', '_blank');})
                });
                

                LG,
                CK

                1. Hej Christian,

                  Matthias hat vergessen den Attributs-Wert in Anführungszeichen zu packen.

                  Das hätte ich auch selber sehen müssen... - danke!

                  Marc