Imagemaps dynamisch anlegen
Hannes Lau
- javascript
0 wahsaga
Hallo Forum!
Für eine interaktive Karte würde ich gerne einer bestehenden ImageMap per JS Areas hinzufügen.
Ich versuche es mit
areaTag = document.createElement("area");
areaTag.setAttribute("shape","poly");
areaTag.setAttribute("alt",stadtteil.name);
areaTag.setAttribute("coords",stadtteil.coords);
areaTag.setAttribute("href","#");
areaTag.id = stadtteil.id+"Area";
this.map.appendChild(areaTag);
wobei this.map eine mit
this.map = document.createElement("map");
this.map.setAttribute("name","hhMap");
this.map.id = "hhMap";
this.node.appendChild(this.map);
angelegte Imagemap ist.
Das <img> erzeuge ich ebenfalls per JS mit
this.mainMapImage = document.createElement("img");
...
this.mainMapImage.useMap = this.map.id
Leider funktioniert das ganze im IE nicht. Die neuen Areas werden nicht linkaktiv, warscheinlich werden sie gar nicht angelegt... Im Firefox funktioniert alles bestens. Hat jemand eine Idee oder findet den Fehler in meinem Code?
Einen netten Gruß
Hannes Lau
hi,
setAttribute macht im IE immer wieder probleme - insb. dann, wenn man auf eine attributeigenschaft auch gleich über objekt.attributname zugreifen kann, haut es mit setAttribute idR. nicht hin.
areaTag = document.createElement("area");
areaTag.setAttribute("shape","poly");
areaTag.setAttribute("alt",stadtteil.name);
areaTag.setAttribute("coords",stadtteil.coords);
areaTag.setAttribute("href","#");
probiere mal, hier statt setAttribute direkt areaTag.shape = "poly", areaTag.alt = stadtteil.name, etc. zu verwenden.
gruß,
wahsaga
Hallo!
und vielen Dank für die rasche und hilfreiche Antwort!!
setAttribute macht im IE immer wieder probleme - insb. dann, wenn man auf eine attributeigenschaft auch gleich über objekt.attributname zugreifen kann, haut es mit setAttribute idR. nicht hin.
Das war schonmal die Hälfte meines Problems :) Vielen Dank! Der Code ist jetzt auch hübscher ;)
Ausserdem habe ich
this.mainMapImage.useMap = this.map.id
durch
this.mainMapImage.useMap = "#"+this.map.id
ersetzt.
Mit _beiden_ Änderungen ging es, mit beiden einzelnen nicht.
Einen netten Gruß
Hannes