Bastian: Eigene HTML Attribute

Hi,
ich möchte gerne eigene HTML-Attribute verwenden.
Also z.B. sowas hier:
<html>
<head>
<script type="text/javascript">
function init(){
alert(document.getElementById("test").CW);
}
</script>
</head>
<body onload="init()">
<table id="test" CW="Yes">
<tbody ><tr>
<th> Inhalt
</th></tr>
</tbody></table>
</body></html>

Leider funktioniert das so nicht (zumindest in meinem firefox), ich bekomme im alert immer ein undefined statt Yes.
Wenn ich den Wert mit document.getElementById("test").CW="Yes" setze funktionierts, ich will den Wert für CW aber bei der Definition des HTML-Elements angeben können.
Kann mir jemand einen Tipp geben wie ich das hinbekomme ?
Viele Grüße
Basti

  1. Hi Bastian!

    Kann mir jemand einen Tipp geben wie ich das hinbekomme ?

    Das ist nicht möglich.

    mfG
    Benjamin

    --
    Selfcode: ie:} fl:{ br:> va:) ls:< fo:( rl:? n4:# ss:| de:] js:| ch:? sh:( mo:? zu:)
    "And all those exclamation marks, you notice? Five? A sure sign of someone who wears his underpants on his head."
    (Terry Pratchett)
  2. Hi,

    ich möchte gerne eigene HTML-Attribute verwenden.

    Du meinst, Du möchtest eine eigene Markup Language entwickeln, die HTML ähnlich sieht? Viel Vergnügen. Bitte bezeichne das dann aber nicht als HTML.

    Leider funktioniert das so nicht (zumindest in meinem firefox), ich bekomme im alert immer ein undefined statt Yes.
    Wenn ich den Wert mit document.getElementById("test").CW="Yes" setze funktionierts,

    Das hat nichts mit Attributen zu tun, sondern setzt eine Eigenschaft eines JavaScript-Objektes. Dies ist aufgrund der Funktionsweise von JavaScript immer möglich. Und, auf die Gefahr hin, mich zu wiederholen: Dies hat nichts mit Attributen zu tun.

    ich will den Wert für CW aber bei der Definition des HTML-Elements angeben können.

    Keine Chance. Wenn Du eine (scheinbar) funktionierende Lösung hast, handelt es sich nicht mehr um HTML.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Du meinst, Du möchtest eine eigene Markup Language entwickeln, die HTML ähnlich sieht?

      Also genau das, was alle Browserhersteller auch getan haben?

      Bitte bezeichne das dann aber nicht als HTML.

      Ja ja, und trink nur Wasser, das der Papst persönlich gesegnet hat ...

      Keine Chance. Wenn Du eine (scheinbar) funktionierende Lösung hast, handelt es sich nicht mehr um HTML.

      Sondern vielleicht um XHTML.

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. Hallo Bastian.

    ich möchte gerne eigene HTML-Attribute verwenden.
    Also z.B. sowas hier:

    <html>

    <head>
    <script type="text/javascript">
    [code lang=javascript]function init(){
    alert(document.getElementById("test").CW);
    }

    
    > </script>  
    > </head>  
    > <body onload="`init()`{:.language-javascript}">  
    > <table id="test" CW="Yes">  
    > <tbody ><tr>  
    > <th> Inhalt  
    > </th></tr>  
    > </tbody></table>  
    > </body></html>[/code]  
    >   
    > Leider funktioniert das so nicht (zumindest in meinem firefox), ich bekomme im alert immer ein undefined statt Yes.  
      
    Ja, da kein Browser ungültige Attribute beachten muss.  
      
    
    > Wenn ich den Wert mit document.getElementById("test").CW="Yes" setze funktionierts,  
      
    Ja, da du hier kein Attribut an das HTML-Element hängst, sondern eine Eigenschaft an das HTML-Elementobjekt. Das kannst du machen, wie es dir beliebt, hier sind dir keine Grenzen gesetzt.  
      
    
    > ich will den Wert für CW aber bei der Definition des HTML-Elements angeben können.  
      
    Weshalb? Welchen Zweck genau soll „CW“ hier erfüllen?  
      
      
    Einen schönen Mittwoch noch.  
      
    Gruß, Mathias  
    
    -- 
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)  
      
    debian/rules
    
  4. Hallo Bastian,

    Das müsste eigentlich über getAttribute/setAttribute funktionieren.

    Ist dann natürlich kein gültiges HTML mehr, (sollte aber auch zu keinen Problemen führen).

    Jonathan

    1. Hallo Jonathan,

      mit setAttribute bekomme ich es doch aber nicht hin dass es nur im HTML-Tag stehen muss (<div MeinAttribut='Yes'>) sondern ich muss dann einen Aufruf objekt.setAttribut(...) machen !? Wäre wohl eine Alternative, wenn auch das Setzen des Attributs dann etwas aufwändiger ist.

      Viele Grüße
      Basti

      Hallo Bastian,

      Das müsste eigentlich über getAttribute/setAttribute funktionieren.

      Ist dann natürlich kein gültiges HTML mehr, (sollte aber auch zu keinen Problemen führen).

      Jonathan

      1. Hi,

        mit setAttribute bekomme ich es doch aber nicht hin dass es nur im HTML-Tag stehen muss (<div MeinAttribut='Yes'>) sondern ich muss dann einen Aufruf objekt.setAttribut(...) machen !? Wäre wohl eine Alternative, wenn auch das Setzen des Attributs dann etwas aufwändiger ist.

        Welchen sinn macht es ungueltige Attribute zu erstellen, wenn du es sowieso mit JavaScript machst? Dann gib doch einfach den Elementen die Eigenschaft, dann kannst Du es auch so auslesen wie du es in deinem Post schon beschrieben hast... Mit JS kannste machen was Dir beliebt.

  5. Hi,
    erstmal danke für die schnellen Antworten, bin von dem Forum echt beeindruckt.

    Weshalb? Welchen Zweck genau soll „CW“ hier erfüllen?

    Ich hatte folgendes vor: Ich habe ein JS-Toolkit, in dem sind Funktionen die einen Tooltip erstellen, die Elemente Drag and Drop fähig machen, Tabellen sortierbar machen und noch einige weiter Sachen.
    Die Funktionen dieses Toolkits sollen von einem Webanwendungsentwickler möglichst einfach eingebunden werden können, deshalb der Versuch dass  nur im html tag ein Attribut angegeben werden muss, also z.B. <div tooltip="Yes">. Beim onload läuft dann die init-Funktion des Toolkits über alle HTML-Elemente im Dom-Baum und schaut ob das Attribut auf Yes gesetzt ist. Falls ja baut es die Funktionalität ensprechend ein.

    Aber so wie ich euch verstanden hab geht das so nicht und ich muss mir doch was anderes einfallen lassen, oder ?

    Viele Grüße
    Basti

    1. Aber so wie ich euch verstanden hab geht das so nicht und ich muss mir doch was anderes einfallen lassen, oder ?

      Ja, verwende eines der vorgegebenen Attribute. "Tooltip" und title liegen m.E. gar nicht so weit auseinander.

      Siechfred

      --
      Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
      1. Hi Siechfred,
        danke für den Tipp, aber da das Toolkit ca. 12 Funktionen hat wird das denke ich so nicht gehn. Vielleicht finde ich 12 freie Attribute die ich verwenden könnte, aber besonders elegant find ich ist das Ganze dann ja nicht mehr :)
        Viele Grüße
        Basti

        Aber so wie ich euch verstanden hab geht das so nicht und ich muss mir doch was anderes einfallen lassen, oder ?

        Ja, verwende eines der vorgegebenen Attribute. "Tooltip" und title liegen m.E. gar nicht so weit auseinander.

        Siechfred

        1. Grütze .. äh ... Grüße!

          danke für den Tipp, aber da das Toolkit ca. 12 Funktionen hat wird das denke ich so nicht gehn. Vielleicht finde ich 12 freie Attribute die ich verwenden könnte, aber besonders elegant find ich ist das Ganze dann ja nicht mehr :)

          <element class="mittooltip rosarot umgedreht riesengroß">


          Kai

          --
          What is the difference between Scientology and Microsoft? One is an
          evil cult bent on world domination and the other was begun by L. Ron
          Hubbard.
          ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
          1. Hallo,

            <element class="mittooltip rosarot umgedreht riesengroß">

            Da man in dem Fall sowieso Style-Informationen im Markup unterbringt, die dort eigentlich nichts zu suchen haben, könnte man sie auch im JavaScript notieren bei der Initialisierung der Tooltips. new Tooltip(element, Toolkit.rosa, Toolkit.umgedreht, Toolkit.riesengroß) oder ähnliches wäre zwar auch keine Trennung von Präsentation und Verhalten, aber immerhin nicht schlechter. Es ist natürlich einfacher, die Infos komplett im HTML zu notieren und JavaScript bloß einzubinden und automatisch suchen zu lassen.

            Mathias

            1. Grütze .. äh ... Grüße!

              <element class="mittooltip rosarot umgedreht riesengroß">

              Da man in dem Fall sowieso Style-Informationen im Markup unterbringt, die dort eigentlich nichts zu suchen haben, könnte man sie auch im JavaScript notieren bei der Initialisierung der Tooltips. new Tooltip(element, Toolkit.rosa, Toolkit.umgedreht, Toolkit.riesengroß) oder ähnliches wäre zwar auch keine Trennung von Präsentation und Verhalten, aber immerhin nicht schlechter. Es ist natürlich einfacher, die Infos komplett im HTML zu notieren und JavaScript bloß einzubinden und automatisch suchen zu lassen.

              So wie ich diesen Beitrag von ihm verstanden habe, sollen _andere_ mit dem System arbeiten können und die jeweils gewünschte Funktionalität für ein Element eben einfach auf diese Weise einbinden, ohne Zugriff auf das JS.
              Daß ich in meinem Beispiel Klassennamen verwendet habe, die Style-Informationen suggerieren, ist reiner Zufall, das geplante Toolkit scheint auch völlig andere Funktionalität haben. Ich hätte genausogut
              <element class="draggable tooltip nochnefunktion"> verwenden können.


              Kai

              --
              What is the difference between Scientology and Microsoft? One is an
              evil cult bent on world domination and the other was begun by L. Ron
              Hubbard.
              ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
  6. Hi,
    mit dem Tipp von Jonathan klappt es jetzt:
    <table id="test" CW="Yes">
    ...
    alert(document.getElementById("test").getAttribute('CW'));
    mit Ausgabe 'Yes' so wie es sein soll.
    Werde noch testen müssen obs mit allen aktuellen Browsern geht, hoffe aber das Jonathan damit recht hat: "Ist dann natürlich kein gültiges HTML mehr, (sollte aber auch zu keinen Problemen führen)".
    Viele Grüße
    Basti

    1. Hallo Bastian.

      mit dem Tipp von Jonathan klappt es jetzt:

      Die optimale Lösung ist die von Kai vorgeschlagene unter Nutzung des class-Attributes. Du solltest unbedingt diese nutzen.

      Einen schönen Mittwoch noch.

      Gruß, Mathias

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules
      1. Hi Mathias,

        danke für den Hinweis, ich werd mir das class-Attribut nochmal anschaun und es mir damit überlegen.

        Viele Grüße
        Basti

    2. Hi,

      Werde noch testen müssen obs mit allen aktuellen Browsern geht,

      Ja, geht.

      "Ist dann natürlich kein gültiges HTML mehr,

      Die aktuellen Browser sind schon (im wesentlichen oder teilweise) für XHTML vorbereitet - und dort kannst Du eigene Attribute definieren, bis Du schwarz wirst. ;-)

      Unwahrscheinlich, daß ein zukünftiger Browser diese Zugriffsmöglichkeit für plain HTML noch extra deaktiviert ...

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      1. Hello out there!

        [In] XHTML […] kannst Du eigene Attribute definieren, bis Du schwarz wirst. ;-)

        Das ist ein Irrtum.

        XHTML erlaubt, was in der DTD steht, sonst nichts. XHTML erlaubt nicht das Einbinden von Elementen oder Attributen aus anderen Namensräumen.*

        See ya up the road,
        Gunnar

        * XHTML 1.1 + MathML 2.0 + SVG 1.1 [XHTML+MathML+SVG] erlaubt das Einbinden von Elementen und Attributen aus den MathML- und SVG-Namensräumen (und nur dieser), weil alle diese auch mit in der DTD stehen

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. Hi,

          XHTML erlaubt, was in der DTD steht, sonst nichts. XHTML erlaubt nicht das Einbinden von Elementen oder Attributen aus anderen Namensräumen.*

          OK, dann schmeißen wir XHTML auf den Müllhaufen der Geschichte, und "beschränken" uns auf XML. >:->

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. Hallo Cybaer.

            XHTML erlaubt, was in der DTD steht, sonst nichts. XHTML erlaubt nicht das Einbinden von Elementen oder Attributen aus anderen Namensräumen.*

            OK, dann schmeißen wir XHTML auf den Müllhaufen der Geschichte, und "beschränken" uns auf XML. >:->

            Gerne doch. Wenn sämtliche Browser damit umgehen können …

            Einen schönen Donnerstag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules
            1. Hi,

              Gerne doch. Wenn sämtliche Browser damit umgehen können …

              Ist das bei XHTML anders? 8->

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            2. Hello out there!

              […] "beschränken" uns auf XML. >:->

              Gerne doch. Wenn sämtliche Browser damit umgehen können …

              Welche heute relevanten können das nicht?

              See ya up the road,
              Gunnar

              --
              „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
              1. Hallo Gunnar.

                […] "beschränken" uns auf XML. >:->

                Gerne doch. Wenn sämtliche Browser damit umgehen können …

                Welche heute relevanten können das nicht?

                OK, unvollständige Aussage. So etwas wie XLink muss schon umgesetzt werden können, sonst ist ein eigener XML-Dialekt unnütz. (Ob damit auch solche Dinge wie über das link-Element vorgenommen werden können, weiß ich nicht.)

                Einen schönen Donnerstag noch.

                Gruß, Mathias

                --
                ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
                debian/rules