Hallo - oder besser - guten Abend (gute Nacht?),
ich beschäftige mich momentan mit einer Aufgabe, bei der ich imagemaps verwenden muss. Bis jetzt habe ich diese immer erfolgreich umgehen können, doch jetzt nicht mehr ()
Meine Seite ist in xhtml 1.1 geschrieben und laut dieser Definition müsste das ganze wie folgt aufgabaut sein, damit es valide ist:
Das weicht von der bekannten HTML Syntax ab, die mit name="" arbeitete und bei dessen usemap-Attribut ein "#" vorangestellt war.
Eben hier liegt das Problem. Selbst der Firefox versteht die XHTML 1.1 Syntax nicht korrekt.
Um trotzdem valide 1.1 zu bleiben habe ich nun getrickst und ändere das DOM-Modell mithilfe von Javascript (jQuery) einfach um in den "alten" Stil.
Soweit funktioniert das. Es hapert jedoch im Opera. Der Opera erkennt meine imagemap nicht an. Egal ob ich sie mit Javascript ändere, direkt den XHTML Syntax nehme oder doch den HTML Syntax. Es juckt Opera einfach nicht. Dort wird die imagemap einfach ignoriert.
Hat jemand eine Idee, wie ich das ganze auch in Opera zum Laufen bekomme?
Wer möchte, kann sich das Problem hier noch einmal ansehen: Immobilien Hahnefeld - Einfamilienhaus - #EFH-001 - Grundrisse
Besten Dank und Grüße
Frank Zechert
ich beschäftige mich momentan mit einer Aufgabe, bei der ich imagemaps verwenden muss. Bis jetzt habe ich diese immer erfolgreich umgehen können, doch jetzt nicht mehr ()
Meine Seite ist in xhtml 1.1 geschrieben und laut dieser Definition müsste das ganze wie folgt aufgabaut sein, damit es valide ist:
HTML-Code:
<map id="meine_map"> <area href="foo" shape="poly" coords="14,266,284,26,384,80,112,297,329,507,290,545" alt="bar" title="foobar" /> </map> <img src="foobar.jpg" alt="foo bar" usemap="meine_map" />
Eben hier liegt das Problem. Selbst der Firefox versteht die XHTML 1.1 Syntax nicht korrekt.
Um trotzdem valide 1.1 zu bleiben habe ich nun getrickst und ändere das DOM-Modell mithilfe von Javascript (jQuery) einfach um in den "alten" Stil.
Code:
var maps = $("map") for(var i = 0; i < maps.length; i++) { $(maps[i]).attr('name', $(maps[i]).attr('id')) } var imgs = $("img[usemap]") for(var i = 0; i < imgs.length; i++) { $(imgs[i]).attr('usemap', "#"+$(imgs[i]).attr('usemap')) }
Hat jemand eine Idee, wie ich das ganze auch in Opera zum Laufen bekomme?
Wer möchte, kann sich das Problem hier noch einmal ansehen: Immobilien Hahnefeld - Einfamilienhaus - #EFH-001 - Grundrisse
Besten Dank und Grüße
Frank Zechert
Kommentar