Valides Unterbringen von Skript-Infos in Tags?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Valides Unterbringen von Skript-Infos in Tags?

    Meine neue Seite besteht aus nur 2 HTML-Seiten, in denen zahlreiche "Sprechblasen" und "Untersprechblasen" den eigentlichen Content beinhalten.

    Ist eine solche Sprechblase geöffnet, ist das Klickverhalten im Grunde so, daß ein Klick auf eine beliebige Stelle außerhalb (also im Body) die Blase schließt.
    Damit die Sprechblase selbst von diesem Verhalten verschont bleibt, weise ich ihr im Moment das (von der Lightbox/Lytebox abgeguckte) meines Wissens komplett erfundene Attribut "rev" zu:

    Code:
     <div id="soundso" class="sprechblase_links" rev="noHideAll" ... >
    das funktioniert auch problemlos, aaaber es ist natürlich nicht valide.

    Wie macht ihr sowas? Gibt es eine Methode, solche Infos legal im Tag unterzubringen? Die Standardattribute geben soweit ich sehr dazu nichts her. Einzige Bedingung: Javascript muß es in jedem aktuellen Browser problemlos auslesen können. Das Title-Attribut ist natürlich Tabu.

    Klar ließe sich das mit einem zentralen Javascript-Array o.ä. lösen. Ich würde es aber gerne direkt im Tag haben.

    EDIT:
    rev ist nicht frei erfunden. Ist aber für DIV-Elemente nicht gültig.
    Zuletzt geändert von pekka; 26.04.2008, 17:41.

  • #2
    So ich hab mir jetzt mit der Möglichkeit, einem Element mehrere Klassen auf einmal zuzuweisen
    Code:
    <div class="sprechblase_links part_of_body">
    und es dann auf diesen Klassennamen zu checken, z.B. bequem mit Prototype:

    Code:
    event-handler
    ....
    if  ($(element).hasClassName('part_of_body') == false)
    ...
    das ist schön und valide für einzelne Flags, aber für das Unterbringen detaillierterer Informationen zur Laufzeit total ungeeignet. Die Frage bleibt also bestehen!

    Kommentar


    • #3
      Willst du die Informationen von Anfang an im Code haben oder sie per Javascript dort unterbringen?
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        Brauche beides!

        Kommentar


        • #5
          Ich habe sowas mal mit dem class-Attribut gemacht, ist allerdings keine sehr hübsche Lösung. Du hast zum Beispiel den Wert "noHideAll", den habe ich so in dem Attribut abgelegt:
          Code:
          <div class="sprechblase_links myValue(noHideAll)">...
          . In deinem JavaScript kannst du das recht einfach heraus parsen. Komplexere Texte solltest du dann aber lieber in einem Objekt ablegen und den Index auf diesen Wert am Tag ablegen oder alle Leerzeichen escapen, um nicht versehentlich eine bestehende CSS-Klasse zu verwenden.

          Kommentar


          • #6
            Ich hatte schon einmal das selbe Problem. Relativ einfach und valid ist das Speichern von Informationen in Event- handlern als String. Die kannst du auch mit normalem Javascript überall ganz einfach abrufen, ausserdem kannst du dort auch alle Zeichen Benutzen du musst nur bei \ und " parsen.

            Kommentar


            • #7
              Brauche beides!
              Informationen die du vom Skript aus speicherst kannst ja einfach mit Element.key direkt an die Element hängen (Mootools stellt da extra Methoden zur Verfügung, die kannst du dir evtl. mal anschauen (Element.store / Element . retrieve)). Für Daten die schon von Anfang an im Skript stehen sollen hast du im Prinzip nur Klassen zur Verfügung. Auf die Benutzung von Event-Handlern würde ich verzichten, das ist nicht nur nicht vorgesehen sondern missbraucht auch die Attribute. Vielleicht kannst du mal einen konkreten Anwendungsfall für inline Daten nennen dann kann man noch näher darauf eingehen.
              <div class="sprechblase_links myValue(noHideAll)">...
              Läuft das durch den Validator?
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                Läuft das durch den Validator?
                Der scheint da keine Probleme mit zu haben: klick.

                Kommentar


                • #9
                  Original geschrieben von tontechniker
                  Auf die Benutzung von Event-Handlern würde ich verzichten, das ist nicht nur nicht vorgesehen sondern missbraucht auch die Attribute.
                  Wow und du findest mit der Klasse sei es ein geringerer Missbrauch? Ein String in einem Event- Handler darf etwa alles beinhalten ausserdem ist er für oftes aufrufen, abändern etc. gemacht, bei class hingegen ist vieles nicht erlaubt.

                  Kommentar


                  • #10
                    Ich mache das so ähnlich und speichere ein Flag und ggf. einen Identifier in das class-Attribut und den Rest verwalte ich in JS alleine.
                    Je nach dem was für Informationen man hat kann man sie auch ins Markup schreiben und dann per CSS wieder ausblenden.
                    hopka.net!

                    Kommentar


                    • #11
                      Bei mir geht es oft um Dinge wie z.B. Tooltips, deren Daten ich gerne base64-kodiert im Link unterbringen würde, weil man sie dann innerhalb von Wysiwyg-Editoren wie FCKEditor einfach dekodieren dem jeweiligen Bearbeitungsdialog übergeben kann.

                      Daten versteckt im Markup zu halten wird wohl die beste Methode sein... Dort stören sie dann aber möglicherweise die Suchmaschinenindizierung und Screenreader ... Schade.. Ein "userdata"-Attribut in der HTML-Konvention hätte gereicht ...

                      Kommentar


                      • #12
                        Bei mir geht es oft um Dinge wie z.B. Tooltips, deren Daten ich gerne base64-kodiert im Link unterbringen würde, weil man sie dann innerhalb von Wysiwyg-Editoren wie FCKEditor einfach dekodieren dem jeweiligen Bearbeitungsdialog übergeben kann.
                        Was willst du da speichern? Ich bin da ja eher für eine strikte Trennung von Javascript und Markup.
                        Wow und du findest mit der Klasse sei es ein geringerer Missbrauch?
                        Kommt ganz auf den Umfang an. Ich benutzte zum Beispiel Klassen wie resizeable und wysiwyg um Formularelemente zu kennzeichnen die mit Javascript umgeformt werden sollen. Mehr Daten würde ich dort allerdings nicht speichern.
                        base64-kodiert im Link unterbringen würde
                        Wenn du einen Link hast kannst du ja auf href zurückgreifen und den String mit einem Anker anhängen.
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar


                        • #13
                          Für Tooltips halte ich das title-Attribut für gerade zu perfekt. So hast du auch ohne JavaScript die Informationen durch Browsermittel und du kannst mit deinem JavaScript den Titel auslesen und auf eine leere Zeichenkette setzen.

                          Kommentar


                          • #14
                            Ich benutzte zum Beispiel Klassen wie resizeable und wysiwyg um Formularelemente zu kennzeichnen die mit Javascript umgeformt werden sollen. Mehr Daten würde ich dort allerdings nicht speichern.
                            Warum nicht? Du kannst ganz einfach einen Wrapper erstellen. von der Performance her ist das auch nicht schlechter sondern eher besser. Man könnte sogar kommentare benutzen. Und was hat der erste Satz im Zitat damit zu tun?

                            Kommentar


                            • #15
                              Warum nicht? Du kannst ganz einfach einen Wrapper erstellen. von der Performance her ist das auch nicht schlechter sondern eher besser. Man könnte sogar kommentare benutzen. Und was hat der erste Satz im Zitat damit zu tun?
                              Für welche Daten? Klasse sind dafür ja nicht gedacht.

                              Auf das Zitat bezogen wollte ich folgendes sagen: ich finde Klassen lassen sich in soweit nutzen, als das man bestimmte Element damit kennzeichnen kann. Alles was darüber hinaus geht (wie PHP-Desaster es vorschlägt) finde ich missbraucht das Attribut und hat auch nichts mehr mit den Spezifikationen zu tun.
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Kommentar

                              Lädt...
                              X