Gernot Back: IMG, MAP und AREA - Warum in FF und nicht in IE ???

Beitrag lesen

Hallo ChrisB,

Der IE stellt sich beim sich beim dynamischen Erzeugen von Formularelementen was das name-Attribut angeht oftmals an wie eine Nutte, die lieber Jungfrau bleiben moechte ... vielleicht ist es hier aehnlich, denn die IE Developer Toolbar zeigt kein name-Attribut fuer das map-Element.

Das liegt wahrscheinlich daran, dass der IE NAME-Attribute, die wie hier im Falle eines MAP-Elements oder auch wie im Falle eines Ankers (Sprungmarke) oder wie im Falle eines FRAME-Elemenst nur _einmal_ im Dokument vorkommen sollten, intern mit IDs verwechselt. Der IE ist halt auch nur ein Mensch, mal ehrlich: dieses Attribut wäre ja dann auch viel näher liegend!
;-)

Du koenntest es mit der alternativen Schreibweise, die das MSDN fuer createElement beschreibt, versuchen (Browserweiche erforderlich):

var myMap = document.createElement("<MAP NAME='map1'></MAP>");

Das funktioniert in der Tat, wie ich überprüft habe. Einfacher und ohne Browserweiche geht es aber, wenn man zusätzlich zu dem NAME-Attribut einfach noch eine gleichnamige ID vergibt. Das schadet ja dann auch den anderen Browsern nicht, denn das NAME-Attribut sollte in diesem Falle ja -wie gesagt- ohnehin dokumentweit eindeutig sein:

  
   var myMap = document.createElement("map");  
   myMap.id= "map1";  
   myMap.name = "map1";  

Gruß Gernot