mixmastertobsi: div attribut

Hallo,

ich möchte in einem Div-Layer variablen abspeichern, um diese dann per JavaScript auszulesen. Ich habe diese nun in dem title-tag eingefügt. Leider finde ich dies keine ideale Lösung, da diese tag vom Browser angezeigt wird, wenn sich der User mit der Maus lange über den Layer befindet. Welches attribut kann ich für einen div layer verwenden?!?

  1. Hi,

    es sind div-Elemente, nicht Layer.
    Für dein Vorhaben eignen sich data-* Attribute.

    ~dave

    1. es sind div-Elemente, nicht Layer.
      Für dein Vorhaben eignen sich data-* Attribute.

      Oder versteckte input-Elemente vom type "hidden" die man nach belieben per DOM hinzufügen kann.

      Aber ob das sinnvoll ist, kann man nur erahnen - man müsste wissen um welche Informationen es sich handelt und wozu diese gut sind.

      1. ich möchte ein flash per Javascript nachladen. Problem ist, dass das alles noch W3C konform sein sollte.

        1. ich möchte ein flash per Javascript nachladen. Problem ist, dass das alles noch W3C konform sein sollte.

          Und wo ist das Problem?

          <a href="foo.swf" type="application/x-shockwave-flash">foo</a>

          Mit JavaScripst suchst du alle a-Elemente die als Typ Flash (application/x-shockwave-flash) angeben und ersetzt diese durch entsprechenden HTML-Code.

          Warum bist du überhaupt im Themenbereich HTML/XHTML wenn du ein JavaScript-Problem hast?

          1. Hallo, ich habe einen Layer, in dem ein Bild ist

            <div class='flashload'><img src='bild.jpg'></div>

            Jetzt möchte ich, dass per JavaScript das Flash nachgeladen wird. Bisher habe ich es mit dem title tag gelöst. Da ich diesen aber nicht als ideal finde, suche ich ein anderes attribut, welches w3c konform ist und in dem ich dem javascript meine Flash-Parameter übergeben kann.

            1. Hi,

              Hallo, ich habe einen Layer,

              Nein. Ein div-Element.

              Layer gab's mal im Netscape-Uralt, aber der ist ja inzwischen ausgestorben.

              <div class='flashload'><img src='bild.jpg'></div>
              Jetzt möchte ich, dass per JavaScript das Flash nachgeladen wird. Bisher habe ich es mit dem title tag gelöst.

              Nein. Bitte informiere Dich über die Unterschiede zwischen element, tag und attribute.

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              O o ostern ...
              Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
            2. Hallo, ich habe einen Layer, in dem ein Bild ist

              <div class='flashload'><img src='bild.jpg'></div>

              Jetzt möchte ich, dass per JavaScript das Flash nachgeladen wird. Bisher habe ich es mit dem title tag gelöst. Da ich diesen aber nicht als ideal finde, suche ich ein anderes attribut, welches w3c konform ist und in dem ich dem javascript meine Flash-Parameter übergeben kann.

              Herrgott dann mach halt einen verdammten Link um das Vorschaubild.

            3. Mahlzeit mixmastertobsi,

              <div class='flashload'><img src='bild.jpg'></div>

              Jetzt möchte ich, dass per JavaScript das Flash nachgeladen wird.

              *DAS* Flash? Welches?

              MfG,
              EKKi

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. ich möchte ein flash per Javascript nachladen. Problem ist, dass das alles noch W3C konform sein sollte.

            Und wo ist das Problem?

            <a href="foo.swf" type="application/x-shockwave-flash">foo</a>

            Wieso sollte man das tun? Soll das »semantischer« sein?

            Ein HYPERLINK auf einen Flashfilm? Okay, ergibt von der Logik her vielleicht noch Sinn, weil damit eine hypertextuelle Beziehung ausgedrückt wird.

            Aber ist das wirklich eine? Ich würde das ja verstehen, wenn dort der INHALT des Flashfilms als Hypertext stünde und ein JavaScript den dann - gemäß Progressive Enhancement - durch den äquivalenten, aber grafisch ansprechenderen Flashfilm austauschte. Das tut er aber nicht.

            Mit JavaScripst suchst du alle a-Elemente die als Typ Flash (application/x-shockwave-flash) angeben und ersetzt diese durch entsprechenden HTML-Code.

            Wieso denn so umständlich? Wieso JavaScript überhaupt bemühen?

            Können wir uns nicht mal endlich von dem »Flash valide einbinden« verabschieden? Das war schon immer Unsinn. Dass Flash sich lange nicht valide einbinden ließ, zeigte bloß, wie weit der HTML-Standard von der Realität weg war. Es hatte nichts mit mangelnder Interoperabilität der hässlichen, aber funktionierenden object@classid+embed-Lösung zu tun. Wer meint nicht auf den Valide-Bapperl verzichten zu können, soll einen HTML5-DOCTYPE verwenden.

            Mathias

            1. <a href="foo.swf" type="application/x-shockwave-flash">foo</a>

              Wieso sollte man das tun? Soll das »semantischer« sein?

              Wenn es sich um einen Verweis auf einen externen Film handelt der nicht unbedingt sofort geladen werden soll ist diese vorgehensweise imho ok.

              <a href="foo.swf" type="application/x-shockwave-flash"><img src="foo.png" alt="preview" /></a>

              Für Besucher mit Mobilgeräten die Flash-fähig sind aber ohne Flashblock-änlichen Mechanismen daherkommen ist das eine Bereicherung wenn ihnen nicht sofort irgend ein Flash vorgesetzt wird, welches sie ohnehin nicht ansehen wollen.

              Aber ist das wirklich eine? Ich würde das ja verstehen, wenn dort der INHALT des Flashfilms als Hypertext stünde und ein JavaScript den dann - gemäß Progressive Enhancement - durch den äquivalenten, aber grafisch ansprechenderen Flashfilm austauschte. Das tut er aber nicht.

              Dass "foo" nur als Platzhalter dient, ist dir nicht in den Sinn gekommen? :)

              Wieso denn so umständlich? Wieso JavaScript überhaupt bemühen?

              Es war nicht meine Idee das Flash "nachzuladen".

              Können wir uns nicht mal endlich von dem »Flash valide einbinden« verabschieden? Das war schon immer Unsinn. Dass Flash sich lange nicht valide einbinden ließ, zeigte bloß, wie weit der HTML-Standard von der Realität weg war. Es hatte nichts mit mangelnder Interoperabilität der hässlichen, aber funktionierenden object@classid+embed-Lösung zu tun. Wer meint nicht auf den Valide-Bapperl verzichten zu können, soll einen HTML5-DOCTYPE verwenden.

              Wieso? Flash lasst sich problemlos und auch ohne embed-Element valide einbinden. Ein object-Element und ein paar param-Elemente und gut ist.

              1. Flash lasst sich problemlos und auch ohne embed-Element valide einbinden. Ein object-Element und ein paar param-Elemente und gut ist.

                Die Probleme davon sind ebenfalls bekannt. »Flash Satay« war eben der Versuch, die Probleme, die man sich mit validem Code ins Haus holt, wieder abzumildern. Das ganze war ein ekliger Hack und hat damals unglaubliche Interoperabilitätsprobleme mit sich gebracht. Nutzt man die klassische Methode, hat man diese Probleme überhaupt nicht. Und valide ist mittlerweile beides.

                Mathias

        2. ich möchte ein flash per Javascript nachladen. Problem ist, dass das alles noch W3C konform sein sollte.

          Verwende HTML5 und direkt <embed>. Verzichte auch irgendwelche Javascript-Tricks, um den HTML-Code HTML-4-valide aussehen zu lassen, um dann doch embed einzufügen.

          Diese sind nur interessant, wenn du mit JavaScript eine Flash-Erkennung machen willst, um sinnvolle Alternativinhalte zu laden.

          Mathias

    2. Hallo,

      ich habe jetzt das Attribut data-flash='' hinzugefügt.

      jetzt versuche ich das Attribut per JavaScript auszulesen
      element.dataset.flash

      leider funktioniert dies nicht. Woran liegts?

      1. element.dataset.flash

        leider funktioniert dies nicht. Woran liegts?

        Weil noch kein Browser data-Attribute insofern unterstützt, dass das dataset-Objekt angeboten wird. Verwende einfach element.getAttribute('data-flash') oder element['data-flash'].

        Mathias

        1. @@molily:

          nuqneH

          Weil noch kein Browser data-Attribute insofern unterstützt, dass das dataset-Objekt angeboten wird. Verwende einfach element.getAttribute('data-flash') oder element['data-flash'].

          UPDATE molily SET type = 'Browser' WHERE application = 'Chrome';

          <samp id="foo" data-bar-baz="quz"/>

          var foo = document.getElementById('foo');  
          if (foo.dataset && foo.dataset.barBaz) alert(foo.dataset.barBaz);
          

          Chrome 9 gibt "quz" aus.

          Qapla'

          --
          Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
          (Mark Twain)
          1. Hi,

            welche Logik steckt eigentlich dahinter dass diese Attribute anders abgefragt werden können/sollen als die anderen?
            Kann mir jemand einen Vorteil davon nennen?

            ~dave

            1. welche Logik steckt eigentlich dahinter dass diese Attribute anders abgefragt werden können/sollen als die anderen?

              Das soll einfach eine »convenient« Schreibweise sein, die Attributnamen mit Bindestrichen automatisch auf gültige Property-Namen mappt und umgekehrt.

              Kann mir jemand einen Vorteil davon nennen?

              Ich sehe keinen substantiellen. Natürlich ist es von der Syntax her mehr JavaScript-typisch, so zu arbeiten. Aber das ist syntactic sugar, also Augenwischerei. Letztlich wird intern ein Attribut gesetzt. D.h. ich kann ohnehin nur Strings zuweisen und bekomme auch nur Strings heraus. Insofern ist es eher verwirrend. dataset suggeriert, es sei ein ganz normales JavaScript-Objekt, bei dem man Properties wie bei anderen Objects anlegen kann. Das stimmt so eben nicht.

              Bei sessionStorage/localStorage liegt dasselbe Problem vor. Auch dort sollte man tunlichst mit setItem und getItem arbeiten anstatt direkt mit sessionStorage.neueProperty = ...

              API-Design in HTML5 ist nicht immer vernünftig. Der große Diktatur ist auch nicht unbedingt ein begnadeter Programmierer mit Sinn für Programmierungsbedürfnisse unter dem Herrn. ;)

              @Gunnar, danke für den Nachtrag.

              Mathias

  2. ich möchte in einem Div-Layer variablen abspeichern, um diese dann per JavaScript auszulesen. Ich habe diese nun in dem title-tag eingefügt. Leider finde ich dies keine ideale Lösung, da diese tag vom Browser angezeigt wird, wenn sich der User mit der Maus lange über den Layer befindet. Welches attribut kann ich für einen div layer verwenden?!?

    Es gibt mehrere Möglichkeiten, Daten für JS in einem File bereitzuhalten.
    In einem Script-Element
    In einem JS-File
    Beides mit JSON-Format

    Was ich gelegentlich tue, zum Beispiel für Vorschlagsfelder in Formularen:
    <input type="hidden">

    HTML5 bietet hier noch andere Möglichkeiten.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. Hi,

    ich möchte in einem Div-Layer variablen abspeichern, um diese dann per JavaScript auszulesen.

    Das naheliegendste für Javascript-Variablen ist eigentlich ein Script-Element.

    Ich habe diese nun in dem title-tag eingefügt.

    Also im head der HTML-Datei? In einem Attribut des title-Elements?

    Leider finde ich dies keine ideale Lösung, da diese tag vom Browser angezeigt wird, wenn sich der User mit der Maus lange über den Layer befindet.

    Nein, title-Tags werden nicht beim Hovern über dem Element angezeigt.
    Das würde auf title-Attribute zutreffen ...

    Aber warum willst Du überhaupt für script-Zeug was anderes als ein script-Element verwenden?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.