peter: dynamisch Imagemap erzeugen

Beitrag lesen

Hi,

ich werd hier wahnsinnig.
Hab schon alles mögliche versucht, aber mein IE weigert sich beharrlich  einen "area"-Bereich in der Imagemap aktiv zu machen.

Folgender Code:

ich erzeuge eine Imagemap und geb ihr einen Namen:

  
meineMap=document.createElement("map");  
meineMap.name='MAP_1';  

ich erzeuge ein Area, weise diesem die gewünschten Eigenschaften zu und füge es in die Map ein:

  
areaTag=document.createElement("area");  
  
areaTag.shape='RECT';  
areaTag.coords='10,10,100,100';  
areaTag.href='seite.html';  
  
meineMap.appendChild(areaTag);  

Die Abfragen:

  
alert(meineMap.areas.length);  
  
alert(meineMap.areas[0].shape);  
alert(meineMap.areas[0].coords);  
alert(meineMap.areas[0].href);  

geben mir für areas.length die erwartete Anzahl von 1 und auch die korrekten Werte der Eigenschaften aus.

hänge dann die Map in den Body ein, erzeuge ein Image, weise dem Image die Map zu und hänge das Bild in den Body ein

  
document.body.appendChild(meineMap);  
  
var bild=document.createElement('img');  
bild.src='grafik/bildname.png';  
  
bild.useMap='#MAP_1';  
  
document.body.appendChild(bild);  

Funktioniert auch alles wunderbaar im Firefox, DOM-Inspector zeigt mir auch das erwartete Ergebnis, Javascript-Konsole bleibt leer.

Nur im IE wird der Area-Bereich nicht aktiv. Daß die Map aber da ist, kann ich an der blauen Link-Umrandung des Bildes erkennen.

Wenn ich im Body per HTML eine Map(name="MAP_2") reinsetze und im JS dem Bild mit bild.useMap='#MAP_2'; zuweise, funktionierts einwandfrei.

Im Archiv hab ich zu dem Thema folgenden Artikel gefunden:
http://forum.de.selfhtml.org/archiv/2005/6/t108695/
Hat mich dabei aber auch nicht weitergebracht.

Mit setAttribute() war übrigens auch alles wie oben beschrieben.

Zuweisung ungültiger Werte an coords:

  
areaTag.coords='10px,10px,100px,100px';  

brachte bei der alert-Abfrage 0,0,0,0 zurück.

Hilfe, was mach ich falsch?
Wär total glücklich, wenn mir jemand weiterhelfen könnte.

viele Grüße
peter