Matty: Nachgeladene Imagemap im iE

Hi Leute ich habe eine ImageMap die beispielhaft so aufgebaut ist:

<map name="test">
  <area coords="..." href="./?id=5" onClick="goTo(5);return false" />
</map>
<image usemap="#test" src="..."/>

Diese Map lade ich (wenn JS aktiviert ist) per Click auf eine Area neu (goTo ist eine AJAX-Funktion). Also ich lade den gesamten Map-Teil und das Image per AJAX neu in das DIV ... jetzt ist es im FF so dass ich beim mouseover über deine definierte Area einen veränderten Mauszeiger habe (wegen dem href) beim iE ist das auch so. Aber nur auf oberster Ebene. Sobald ich die neue Map aus dem Response bekomme und anzeige Wird der Mauscursor nicht mehr geändert (die Areas sind aber auch im iE da, denn auch hier kann ich wieder auf die Map drücken...) ... jemand ne Idee wieso der Mauscursor im iE nicht mitmacht nachdem die Imagemap per AJAX neugeladen wird? Muss ich da irgendetwas "reinitialisieren" damit der iE das checkt?

Danke und Grüße,
Matty

  1. Moin Matty,
    eigentlich haben area-tags keinen style. Hier haben wir mal einen Fehler vom Firefox :-)

    http://www.moryson.net/eintrag.cfm?eid=8

    Paul

    1. eigentlich haben area-tags keinen style.

      seit wann? Weshalb sollte ein Browser sonst cursor:pointer über area-Tags anwenden?

      1. Vielleicht hilft euch ja mein Prototyp ... einfach mal auf Deutschland klicken und dann beim Hover über Hessen verändert sich der Cursor nicht mehr im iE .. im FF schon ... Wenn man allerdings "Deutschland" direkt aufruft ist der Hover auch im iE da :(

        1. Hallo,

          Vielleicht hilft euch ja mein Prototyp ... einfach mal auf Deutschland klicken und dann beim Hover über Hessen verändert sich der Cursor nicht mehr im iE .. im FF schon ... Wenn man allerdings "Deutschland" direkt aufruft ist der Hover auch im iE da :(

          mein IE6 mag gar nicht erst die Deutschlandkarte anzeigen. Dein HTML ist doch wohl etwas zu knapp für ihn.

          ansonsten kann ich dein Problem auf meiner Seite nicht nachvollziehen, dort wird img.src und useMap  auch dynamisch getauscht, und der Cursor des IE ist immer ok.

          Gruß plan_B

          --
               *®*´¯`·.¸¸.·
          1. Hallo,

            mein IE6 mag gar nicht erst die Deutschlandkarte anzeigen. Dein HTML ist doch wohl etwas zu knapp für ihn.

            Hmm IE 6.0.2900.2180 hier und das Bild wird angezeigt.. was meinste mit "HTML zu knapp"?

            ansonsten kann ich dein Problem auf meiner Seite nicht nachvollziehen, dort wird img.src und useMap  auch dynamisch getauscht, und der Cursor des IE ist immer ok.

            Wie konntest du es denn nachvollziehen, wenn das Bild bei dir im IE nicht mal angezeigt wird?

            Danke für weitere Infos :)
            Gruß,
            Martin

            1. Hallo,

              Hmm IE 6.0.2900.2180 hier und das Bild wird angezeigt.. was meinste mit "HTML zu knapp"?

              stimmt, schlecht formuliert. Wenn ich auf Europa clicke, kommt die Eieruhr aber nie ein Bild. Laden wird nicht beendet.

              "HTML zu knapp"?

              denke es wird daran liegen, dass der IE nicht weiss, was für ein Dokument er vor sich hat. Nur <script>, <div>... scheint mir zu wenig zum Testen.

              Gruß plan_B

              --
                   *®*´¯`·.¸¸.·
              1. Hallo,

                Hmm IE 6.0.2900.2180 hier und das Bild wird angezeigt.. was meinste mit "HTML zu knapp"?

                stimmt, schlecht formuliert. Wenn ich auf Europa clicke, kommt die Eieruhr aber nie ein Bild. Laden wird nicht beendet.

                Das find ich jetzt bisschen krass. Weil soviel Zaubern tu ich da auch nicht.. gehts bei dir im FF auch nicht?

                "HTML zu knapp"?
                denke es wird daran liegen, dass der IE nicht weiss, was für ein Dokument er vor sich hat. Nur <script>, <div>... scheint mir zu wenig zum Testen.

                Achso meinst der braucht nen DocType oder wie?

                Danke :)

                1. Hallo,

                  Das find ich jetzt bisschen krass. Weil soviel Zaubern tu ich da auch nicht.. gehts bei dir im FF auch nicht?

                  doch mit Opera 9 und FF 1.5 ging's ohne Probleme.

                  "HTML zu knapp"?
                  denke es wird daran liegen, dass der IE nicht weiss, was für ein Dokument er vor sich hat. Nur <script>, <div>... scheint mir zu wenig zum Testen.

                  Achso meinst der braucht nen DocType oder wie?

                  vermute ich mal ...

                  Gruß plan_B

                  --
                       *®*´¯`·.¸¸.·
                  1. Achso meinst der braucht nen DocType oder wie?

                    vermute ich mal ...

                    Welchen würdest du denn zum Test empfehlen?
                    probiere das dann heut Abend mal aus.

                    Mich schokiert es immer noch etwas das bei dir die Sanduhr bleibt ._.

                    Danke!

                    1. Hallo

                      Mich schokiert es immer noch etwas das bei dir die Sanduhr bleibt ._.

                      so schlimm ist es auch nicht, wenn ich das Fenster schliesse ist sie auch weg :)

                      spendiere ich deinem Code aber einen <doctype strict>,<head> <base href..> und <body>, dann kann ich auch von Europa zur Deutschlandkarte clicken, dann bleibt auch bei mir der Pointer über Hessen aus.

                      Gruß plan_B

                      --
                           *®*´¯`·.¸¸.·
                      1. spendiere ich deinem Code aber einen <doctype strict>,<head> <base href..> und <body>, dann kann ich auch von Europa zur Deutschlandkarte clicken, dann bleibt auch bei mir der Pointer über Hessen aus.

                        Supi, danke.. damit ist mein Problem geklärt.

                        Probiere das dann gleich daheim aus heute Abend :)

                        Gruß und Danke nochmal.

                        Matty

                        1. Hmm DocType, base href, body und head sind drin .. aber im iE ist der Cursor immer noch doof :(

                          http://map.lovesara.de/?id=1

                          Danke :)

                          1. Hat keiner mehr sonst ne Idee? :(

                            Bin voll am verzweifeln!

                            Danke!

                            1. Moin,
                              zuerst: siehe die erste Antwort.

                              Dann:
                              http://forum.de.selfhtml.org/archiv/2005/3/t103299/#m635809
                              http://forum.de.selfhtml.org/archiv/2005/7/t110821/#m696502
                              ...

                              Paul

                              1. Moin,
                                zuerst: siehe die erste Antwort.

                                Dann:
                                http://forum.de.selfhtml.org/archiv/2005/3/t103299/#m635809
                                http://forum.de.selfhtml.org/archiv/2005/7/t110821/#m696502
                                ...

                                Paul

                                Super,

                                mit einem "festen" onMouseOut onMouseOver klappt es nun wenn ich den CursorStyle des Bildes ändere... schon komisch dass es auf der Referenzseite auch so geht.

                                Aber tausend Dank für deine Mithilfe!

                                Gruß,
                                Matty

                          2. Hallo,

                            Hmm DocType, base href, body und head sind drin .. aber im iE ist der Cursor immer noch doof :(

                            ein <base href= > ist auf deiner Seite wohl überflüssig, ich habe es nur für meinen Test eingefügt, um nicht alle relativen Pfade umzuändern.

                            jetzt geht's wohl eher um http://de.selfhtml.org/css/eigenschaften/anzeigefenster.htm#cursor@title=css/eigenschaften/anzeigefenster.htm#cursor

                            in deinem Ajax script ("..../xajax.js" )wird der Cursor gesetzt

                              
                            document.body.style.cursor= "wait" ; // bzw "default"  
                            
                            

                            Die Anweisungen würde ich mal deaktivieren und dann testen, oder notfalls

                              
                            <area ... onmouseover="this.style.cursor='pointer';">  
                            
                            

                            Gruß plan_B

                            --
                                 *®*´¯`·.¸¸.·
                            1. in deinem Ajax script ("..../xajax.js" )wird der Cursor gesetzt

                              document.body.style.cursor= "wait" ; // bzw "default"

                              
                              >   
                              > Die Anweisungen würde ich mal deaktivieren und dann testen, oder notfalls  
                              >   
                              > ~~~html
                                
                              
                              > <area ... onmouseover="this.style.cursor='pointer';">  
                              > 
                              
                              

                              Hab alles ausprobiert,

                              • code Zeile in xajax.js auskommentiert
                              • onmouseover in die area

                              und NICHTS klappt... Das gibts doch nicht :( .. Wieso hab ich hier keine "hand" beim mouseOver...

                              Bei meinem Referenzscript hier geht das doch auch?!

                              1. Hallo,

                                Bei meinem Referenzscript hier geht das doch auch?!

                                dort wird aber auch in keinem script ein Cursor gesetzt oder verändert.

                                Hab alles ausprobiert,

                                • code Zeile in xajax.js auskommentiert

                                hier müsstest du nochmal genauer suchen, gibt noch 2 Stellen, wo cursor="default" gesetzt wird. Evtl würde cursor="auto" besser gehen (?)

                                • onmouseover in die area

                                <area onmouseover="this.style.cursor='pointer';this.style.cursor='hand';" >

                                das ist des guten zuviel: pointer wird jetzt gleich von "hand" überschrieben, und das versteht nur die IE Generation vor dem 6er

                                Gruß plan_B

                                --
                                     *®*´¯`·.¸¸.·
                                1. Hab alles probiert und es geht trotzdem net. Ist vielleicht zuviel verlangt aber kannst du vllt mal rumprobieren bis es klappt?

                                  Danke :0/

                                  1. Hallo,

                                    Hab alles probiert und es geht trotzdem net.

                                    es macht wenig Sinn an so vielen Schrauben gleichzeitig zu drehen. Probleme macht dein ajax-Script, was den document.body.cursor ändert.  Da du die Anweisungen nicht _alle_  auskommentiert hast, ist am Ende auch kein Effekt sichtbar.
                                    hier mal eine Testseite. Ich hoffe dann siehst du klarer, und kannst deinen Code wieder aufräumen.

                                      
                                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
                                            "http://www.w3.org/TR/html4/strict.dtd">  
                                    <html>  
                                    <head>  
                                    <title>Test: cursor default auto wait</title>  
                                    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">  
                                    <style type="text/css">  
                                     #dbg {border:1px solid red;}  
                                     li b {border:1px solid black;padding:2px;}  
                                     li { padding:5px;}  
                                    </style>  
                                    </head>  
                                    <body>  
                                    <div>  
                                      
                                    <b>Prototyp</b>  
                                    <div id="step_back"></div>  
                                    <div id="map">  
                                    <map name="m_Europa"><area shape="poly" coords="113,166,110,170,116,177,113,183,99,186,87,182,93,175,85,170,83,157,87,156,87,147,93,144,92,137,106,141,112,138,119,144,117,152,120,163"  
                                    href="?id=2" alt="German" onClick="return false;" >  
                                    </map>  
                                    <img src='http://map.lovesara.de/images/europa.gif' usemap="#m_Europa" name="Europa">  
                                    </div>  
                                    <p><a href="#" onclick="return false">ein einfacher Link</a></p>  
                                      
                                    <script type="text/javascript">  
                                    function set_cursor(cur) {  
                                     document.body.style.cursor=cur;  
                                     document.getElementById("dbg").innerHTML =  
                                        "document.body.style.cursor = " +document.body.style.cursor.bold();  
                                     }  
                                    </script>  
                                    <p>Cursor schalten: <span id="dbg"></span></p>  
                                    <ul>  
                                    <li><b onclick="set_cursor('wait')">cursor wait </b>  
                                    <li><b onclick="set_cursor('default')">cursor default</b>  
                                    <li><b onclick="set_cursor('auto')">cursor auto </b>  
                                    <li><b onclick="set_cursor('')">cursor ""</b>  
                                    <li><b onclick="alert(document.getElementById('map').innerHTML)"> alert(div.innerHTML)</b>  
                                    </ul>  
                                      
                                    </div>  
                                    </body>  
                                    </html>  
                                    
                                    

                                    Gruß plan_B

                                    --
                                         *®*´¯`·.¸¸.·
    2. Moin Matty,
      eigentlich haben area-tags keinen style. Hier haben wir mal einen Fehler vom Firefox :-)

      http://www.moryson.net/eintrag.cfm?eid=8

      Paul

      Hallo Paul,

      ich hab ja auch nichts selbst definiert im CSS ... das macht der IE und FF automatisch wenn ein <area einen href hat ... nur eben beim nachgeladenen spinnt der IE rum :(

      Noch weitere Ideen?

      Danke :)