Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] XHTML & image maps <> Opera

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] XHTML & image maps <> Opera

    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:

    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" />
    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.

    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'))
    }
    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
    [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

  • #2
    Hat sich erledigt

    Entschuldigt die Mühe.

    Ich konnte das Problem soeben identifizieren und ausmärzen.
    Das Problem: Durch das <base>-Tag hat opera im Javascript für das Attribut usemap den Absoluten Link zurückgegeben. Durch das JS wurde das usemap also zu

    Code:
    usemap="#http://ih.ch3ck3r.org/objekte/.../meine_map"
    anstatt von
    Code:
    usemap="#meine_map"
    Habe das entsprechend mit folgendem JS gelöst:
    Code:
    $(imgs[i]).attr('usemap', "#"+$(imgs[i]).attr('usemap').split("/")[$(imgs[i]).attr('usemap').split("/").length-1])
    [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

    Kommentar

    Lädt...
    X