• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Image maps/areas - Unterschiede IE / FF

Die da konkret wären im Falle von Joose?
z.b. langsam, "verschmutzung" des Namensraums, keine echte OO (du hast von aussen Zugriff auf alle Eigenschaften), keine prototypische Vererbung, propietäre Syntax, daher keine Wiederverwendbarkeit der Objekte möglich, für andere Projekte ohne Joose.

Aktuell versuche ich die verschiedenen OO-Frameworks zu vergleichen. Joose fällt da am meisten raus, da es nicht möglich ist aus Konstruktor Funktionen Joose Klassen zu bauen. Sie müssen für jede Klasse "from the scratch" aufgebaut werden. Was natürlich den Vergleich erheblich erschwert (wobei Joose das eigentlich könnte, aber es ist nicht dokumentiert).
 
Vorab: Ich kenne in JS nichts anderes und mag Joose, weil es mich stark an meine "Heimat" erinnert. Der Entwickler ist ehemaliger Smalltalker.

Hm, im Vergleich zu? Ich hab daher bisher keine Probleme feststellen können.

keine echte OO (du hast von aussen Zugriff auf alle Eigenschaften),
Das ist keine Eigenschaft oder Bedingung von OO und da gibt es sehr unterschiedliche Ansichten in Smalltalk, Lisp (CLOS), Java, Eiffel, Ada etc.

propietäre Syntax,
Ist zwar immer Geschmackssache, abe den Smalltalk-Stil halte ich für klar überlegen. Sie mein Beitrag heute.

Per Saldo für mich: True is what works. Und erst mit Joose konnte ich Vererbung reinbringen.
 
Indem du direkt mit den area-Nodes arbeitest - das sind nämlich schon Objekte
Also, noch mal ganz herzlichen Dank für diesen Tip!

Bin grad fertig geworden, das umzubauen. Hat ziemlich lange gedauert, weil ich viel Code refactored habe, was eh dringend nötig war.

Über die Geschwindigkeit kann ich noch nichts sagen, auch weil meine Testseite derzeit nur ca. 25 Knoten hat. Aber ich bin sicher, daß es schneller wird, allein schon aus anderen Gründen, die mit meinem Umbau zu tun haben, wo ich Redundanzen beseitigt habe.

Nächster Schritt ist es, das innerHtml zu ersetzen für IE. Morgen!
 
Kleiner Status-Update, ganz kurz:

1) Umstellung auf DOM Methoden (setAttribute) abgeschlossen. FF ok, IE nichts.
2) Finde raus, daß setAttribute bei IE7 stark buggy. Umbau auf "domNode.attributeName = wert".
FF ok, IE hat zwar maps und areas, aber weder onmouseover noch onclick funzen.
3) Inspect DOM in IE zeigt weder coords noch shape. Noch keinen Grund gefunden. Sind wohl nicht wichtig für MS.
4) Lange Suche im Web: In der Tat IE7 ist buggy bei useMap! Geht nicht!*

Werde jetzt auf IE8 gehen.

Bugliste:
http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/
* Test hier:
http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/ImageIncorrectlyReferencingIdMap.html


Es is a Freuid!
Mit de Leit von MS!
sagen die Bayern
 
Hab IE8 in einer VM installiert!

Klappt sofort!

Zwar noch kleinere Probleme u.a. mit Cursor, aber jedenfalls sind die Areas clickable und auch die folgende Verarbeitung klappt.

Identischer Code.
 
1) Umstellung auf DOM Methoden (setAttribute) abgeschlossen. FF ok, IE nichts.
2) Finde raus, daß setAttribute bei IE7 stark buggy. Umbau auf "domNode.attributeName = wert".
FF ok, IE hat zwar maps und areas, aber weder onmouseover noch onclick funzen.
3) Inspect DOM in IE zeigt weder coords noch shape. Noch keinen Grund gefunden. Sind wohl nicht wichtig für MS.
4) Lange Suche im Web: In der Tat IE7 ist buggy bei useMap! Geht nicht!*

Werde jetzt auf IE8 gehen.

Bugliste:
http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/
* Test hier:
http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/ImageIncorrectlyReferencingIdMap.html
1. ist bekannt und hätten wir dir gleich sagen können.
2. Du musst die Eventhandler nur richtig umsetzten, das funktioniert seit dem IE 3
3. hab ich jetzt keine Lust zu testen.
4. das erste Beispiel hat wenig mit der Map zu tun, sondern der schlechten Angewohnheit des IE, name und id Attribut gleichwertig zu behandeln. Dieses Problem ist noch bekannter und älter, als das von 1.
Und das der IE an sich sehr buggy ist, Wissen wir alle - wie ich schon sagte, der Kern des IE ist von 1998 und wurde erst jetzt gründlich überarbeitet.

Du hast hier gerade selbst bemerkt, was du an anderer Stelle noch als schönreden bezeichnet hast, wie herrlich das Leben für den JS Programmierer wird, wenn der IE 6 (unb 7) eimal nicht mehr ist
 
wie herrlich das Leben für den JS Programmierer wird, wenn der IE 6 (unb 7) eimal nicht mehr ist
...na sagen wir mal, weniger grausam oder erträglich. Bis zu "herrlich" wird es wohl IE12 brauchen...! :)

Hatte grad eine Idee, denn IE6 + IE7 machen immer noch ca. 20-25% der Benutzer in meiner Zielgruppe aus (Industrie, Handel, Handwerk "alte" Industrien):

Wenn ich transparente Gifs anstelle der Areas auf das große Bild lege und diese mit onclick/href verknüpfe, dann müßte das ja die Wirkung der Areas haben. Solche Links habe ich für andere Zwecke sowieso auf der Seite, aber mit einem nicht-transparenten Gif, und die funzen auch in IE7 (in 6 kommt die App gar nicht hoch, hab aber noch nix daran gemacht).

Sieht jemand Einwände?
 
Wie gesagt, das Eventhandling über onevent funktioniert seit dem IE 3 tadellos, wenn es bei dir nicht so ist, dann machst du irgendetwas falsch, ich vermute etwas, aber ich will deinem Beispiel nicht vorgreifen.
 
Ich sagte dir bereits was mit diesem Beispiel gezeigt wir. Auf jeden Fall nicht, dass kein Event ausgeführt wird, denn der wird ausgeführt.
allein weil das map-element überhaupt kein event-registriert hat, sollte ersichtlich sein, das das ein ganz anderes problem ist.

EDIT: um mal deutlich zu machen, worum es geht(probier das mal im ie und ff):
Code:
<html>
  <head>
    <title></title>
  </head>
  <body>
    <a name="test" href="#">
    <script type="text/javascript">
      alert(document.getElementById("test"));
    </script>
  </body>
</html>
 
Zuletzt bearbeitet:
War außer Haus...

allein weil das map-element überhaupt kein event-registriert hat, sollte ersichtlich sein, das das ein ganz anderes problem ist.
Klar hat Map keinen Event. Map kennt ja kein solches Attribut. Die sind in den Areas, die zum Map gehören. Damit meine ich onclick bzw. href (weiß nicht, ob das als Event zählt). Oder was hab ich falsch verstanden?

EDIT: um mal deutlich zu machen, worum es geht(probier das mal im ie und ff)
Den Dichter hör ich wohl, allein was will er mir sagen?
Grübel!

FF zeigt den Alert an mit "null", erkennt nicht also das "test" Feld.
IE7 führt den href aus und läuft nicht in den, sondern zeugt ein PopUp mit dem href Namen "#". Also scheint IE das Feld "test" zu bilden und den href auszuführen. Jedoch kann ich im DOM des IE keinen Knoten "test" finden.

Richtig verstanden?

Dazu frage ich mich:
1) Was soll mir das sagen/zeigen?
2) Was hat das mit dem Map/Area Problem zu tun?
 
Die IE7 Map/Area-Sache ist mysteriös. Ich habe in IE7 Dev Toolbar und DebugBar meine Map/Area verglichen mit einer Muster-Seite, bei der bei mir in IE7 Map/Areas erkannt werden und funktionieren.

Der Unterschied ist:
Dort wird in beiden DOM Inspektoren bei Map Id UND Name angezeigt.
Bei mir wird nur die id angezeigt, kein Name. Allerdings zeigt die DebugBar im oberen Teil auch den Namen an (clickables).

Zur Verdeutlichen zwei Screenshots anbei. Man sieht klar:
Bei meinem Map wird "clickables" nur oben angezeigt, nicht unten.
Beim fremden Beispiel steht "circles" oben und unten.

Das ist der einzige Unterschied, den ich entdecken konnte. Bei der Deklaration von "name" in Map hab ich auch schon alles versucht, um das unten reinzubringen, wobei ich nicht weiß, ob das der Grund ist. Im Img wird useMap richtig erkannt und es steht auch der richtige Wert drin: "#clickables".

Übrigens passiert es bei meinen Test häufig, daß IE zwar Map aber keine Areas bildet. Wenn ich dann Page refresh mache, dann sind danach Areas da. Timing Probleme?
 

Anhänge

  • IE-MeinMap.jpg
    IE-MeinMap.jpg
    28,7 KB · Aufrufe: 4
  • IE-Fremd.jpg
    IE-Fremd.jpg
    23 KB · Aufrufe: 1
Ich hatte dir das bereits erklärt, der IE verwurstet ID und name identisch, d.h. ein Element mit einem namen wird per getElementById gefunden und umgekehrt. Deshalb wird bei deinem angeblichen Eventhandler Problem Beispiel, die Map auf das Bild angewandt, obwohl es keinen Namen hat, aber ein ID. Deshalb wird zwar der onclick Event des Bildes ausgeführt, danach aber direkt auf den Link in der map weitergeleitet.

Ansonsten kann ich nur immer wieder wiederholen, events funktionieren seit frühsten Browsertagen weitestgehend ohne größere Probleme.
 
Zurück
Oben