nimble: IE akzeptiert name Attribute nicht

Hi

Ich plaziere mit JavaScript Bilder auf der Webseite.
Das Image Objekt besitzt volgende Eigenschaften

  
check_img = document.createElement("img");  
   check_img.src = "img/failed.gif";  
   check_img.name = 'failed';  
   check_img.setAttribute('id', 'ck_'+line.childNodes[1].text);  
   check_cell.appendChild(check_img);  

Die ID funktioniert und kann wieiterverwendet werden. Der Nmae
allerdings wird nicht annerkannt, was ich mit document.getElementsByName('failed').length überprüft habe. Platziere ich auf der Seite ein HTML Bild mit dem Namen, wird dieses gezählt.

warum nicht?

THX

--
ie:} fl:( br:> va:) ls:& fo:# rl:( n4:? ss:) de:] js:| ch:? sh:) mo:? zu:)
------------------------------
lieber ein Pinguin der läuft
als ein Fenster das hängt
------------------------------
  1. Hallo,

    check_img = document.createElement("img");
       check_img.src = "img/failed.gif";
       check_img.name = 'failed';
       check_img.setAttribute('id', 'ck_'+line.childNodes[1].text);
       check_cell.appendChild(check_img);

    
    >   
    > Die ID funktioniert und kann wieiterverwendet werden. Der Nmae  
    > allerdings wird nicht annerkannt, was ich mit document.getElementsByName('failed').length überprüft habe. Platziere ich auf der Seite ein HTML Bild mit dem Namen, wird dieses gezählt.  
    > warum nicht?  
    
    Das ist so, weil ist so ;-) Siehe auch <http://forum.de.selfhtml.org/archiv/2006/8/t134718/#m874222>.  
      
    Probiere es mit der Microsoft-eigene Methode document.[createElement(sTag)](http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createelement.asp?frame=true).  
      
    ~~~javascript
      
     try { //probiere, ob die IE-Syntax von document.createElement angewendet werden kann:  
      check_img = document.createElement("<img name='failed'>");  
     } catch(e) { //sollte die IE-Syntax nicht möglich sein, probiere die Standardsyntax:  
      //alert(e);  
      check_img = document.createElement("img");  
     }  
      
     if (check_img) { //haben wir ein IMG-Objekt?  
      check_img.src = "img/failed.gif";  
      check_img.name = 'failed';  
      check_img.id = 'ck_'+line.childNodes[1].text;  
      check_cell.appendChild(check_img);  
     }  
    
    

    viele Grüße

    Axel

    1. Hi

      check_img = document.createElement("<img name='failed'>");

      Da ich nur für den IE programmiere, werd ich den Check nicht benötigen. Das zählen funktioniert jetzt wuderbar, die Namen scheinen vergeben.  
      Doch jetzt stehen wir an der nächsten Hürde wieder an:  
        
      ~~~javascript
        
       this.checkValue = function()  
       {  
        if (this.value!="")  
        {  
         check_img = document.getElementById('ck_'+this.name);  
         check_img.src = 'img/done.gif';  
         check_img.setAttribute('name', 'done');  
        }  
        else  
        {  
         check_img = document.getElementById('ck_'+this.name);  
         check_img.src = 'img/failed.gif';  
         check_img.name = 'failed';  
        }  
       }  
      
      

      schliesslich soll der Name nicht immer 'failed' bleiben. Wie Ihr seht habe ich beide mir bekannte zuweisungsvarianten versucht, aber keine greifft, ich hab immer gleich viele 'failed' IMG's :-(

      [quote]
      Microsoft JScript allows the name to be changed at run time. This does not cause the name in the programming model to change in the collection of elements, but it does change the name used for submitting elements.

      The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method.
      [/quote]

      Ich muss das ganze wohl irgendwie anders lösen...

      THX

      --
      ie:} fl:( br:> va:) ls:& fo:# rl:( n4:? ss:) de:] js:| ch:? sh:) mo:? zu:)
      ------------------------------
      lieber ein Pinguin der läuft
      als ein Fenster das hängt
      ------------------------------
      1. Hi

        Ich muss das ganze wohl irgendwie anders lösen...

        Ja wenns einfach nicht geht - muss es halt kompliziert werden:

          
        old_img = document.getElementById('ck_'+this.name);  
           new_img = document.createElement("<img name='done'>");  
           new_img.src = 'img/done.gif';  
           check_img.setAttribute('id', 'ck_'+this.name);  
           old_img.parentNode.replaceChild(new_img, old_img);  
        
        

        ersetzten statt repatieren lautet die Devise des 21 Jahrhunderts ;-)

        THX

        --
        ie:} fl:( br:> va:) ls:& fo:# rl:( n4:? ss:) de:] js:| ch:? sh:) mo:? zu:)
        ------------------------------
        lieber ein Pinguin der läuft
        als ein Fenster das hängt
        ------------------------------
    2. Hi,

      try { //probiere, ob die IE-Syntax von document.createElement angewendet werden kann:
        check_img = document.createElement("<img name='failed'>");
      } catch(e) { //sollte die IE-Syntax nicht möglich sein, probiere die Standardsyntax:

      Wobei ich hier eher zu Conditional Compilation greifen würde, als knapp die Hälfte der Browser bewußt in einen Fehler zu jagen. ;-)

      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,

        try { //probiere, ob die IE-Syntax von document.createElement angewendet werden kann:
          check_img = document.createElement("<img name='failed'>");
        } catch(e) { //sollte die IE-Syntax nicht möglich sein, probiere die Standardsyntax:

        Wobei ich hier eher zu Conditional Compilation greifen würde, als knapp die Hälfte der Browser bewußt in einen Fehler zu jagen. ;-)

        Och nee!

        So?:

          
        /*@cc_on  
           /*@if (@_win32)  
              check_img = document.createElement("<img name='failed'>");  
           @else @*/  
              check_img = document.createElement("img");  
              check_img.name = 'failed';  
           /*@end  
        @*/  
        alert(check_img.name);  
        
        

        Das ist ja schlimmer als CSS-Hacks ;-).

        viele Grüße

        Axel

        1. Hi,

          Och nee!

          Och doch. ;)

          /*@if (@_win32)

          Hmm, "@_jscript" stattdessen?

          Das ist ja schlimmer als CSS-Hacks ;-).

          Hey hey, nicht ausfallend werden! ;-)

          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,

            Hmm, "@_jscript" stattdessen?

            Hmm, weiß ich nicht. Hat der Mac-IE das Problem mit HTMLElement.name auch?

            viele Grüße

            Axel

            1. Hi,

              Hmm, "@_jscript" stattdessen?
              Hmm, weiß ich nicht. Hat der Mac-IE das Problem mit HTMLElement.name auch?

              Keine Ahnung. %-)

              "@_jscript" ist aber wohl immer sinnvoll, da es ja vielleicht mal auch Non-IEs geben könnte, die CC beherrschen. :)

              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"!