JCB: onMousemove feuert, obwohl die Maus nicht bewegt wird

Tach auch!

Ich hab hier ein Phänomen, das ich mir nicht erklären kann. Ich verwende in einem HTML-Dok im body-Tag onMousemove="test()". Die Funktion wird auch bei der ersten Mausbewegung ausgeführt und setzt dabei einen Counter zurück. Jetzt wird die Funktion aber auch ausgeführt, wenn die Maus nicht bewegt wird?!

Wer wird daraus schlau ;)?

Danke im Vorraus!

Gruß,

JCB

PS: Es geht lediglich um den IE6.0

  1. Hallo,

    lass Dir mal die Positionen ausgeben...

    Wenn Du da einen Jitter auf der leitung hast, dann kommt das schon mal vor, dass die angezeigte Position zwischen zwei möglichen Positionen hin und her springt.

    Sollte man also auf jeden Fall mit zwei unterschiedlichen Hardware-Ausstattungen testen.

    LG
    Chris

    1. Hi!

      lass Dir mal die Positionen ausgeben...

      Wenn Du da einen Jitter auf der leitung hast, dann kommt das schon mal vor, dass die angezeigte Position zwischen zwei möglichen Positionen hin und her springt.

      Sollte man also auf jeden Fall mit zwei unterschiedlichen Hardware-Ausstattungen testen.

      Position hatte ich schon testweise ausgegeben. Die bleibt gleich. Der Cursor bleibt ja auch stehn, wackelt also nicht hin und her, ohne das die Maus bewegt wird.

      Gruß,

      JCB

      1. Position hatte ich schon testweise ausgegeben. Die bleibt gleich. Der Cursor bleibt ja auch stehn, wackelt also nicht hin und her, ohne das die Maus bewegt wird.

        Dann wird die Funktion sicher nicht so aufgerufen wie du es im Ausgangsposting beschrieben hast.

        Struppi.

        1. Hallo,

          Position hatte ich schon testweise ausgegeben. Die bleibt gleich. Der Cursor bleibt ja auch stehn, wackelt also nicht hin und her, ohne das die Maus bewegt wird.

          Dann wird die Funktion sicher nicht so aufgerufen wie du es im Ausgangsposting beschrieben hast.

          Es ist eher etwas IE typisches:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

          <html>
          <head>
           <title>Untitled</title>
           <script type="text/javascript">
            function test() {
             alert("booh!");
            }
           </script>
          </head>

          <body>

          <p onMousemove="test()" style="width:200px; height:200px; border:solid;">x</p>

          </body>
          </html>

          Grüße
          Thomas

          1. Mahlzeit.

            Das ist klar

              
            alert("booh!")  
            
            

            Bei einem Alert im Ie wird die Cursorposition immer neu gesetzt und an den Browser gesendet. Da du hier entweder mit der Maus (was die funktion 100% nochmals startet) auf "ok" klicken musst. Oder du drückst die Leertaste, was aber genau den selben effekt hat.

              
            var unterbrecher = 0  
            function test() {  
            setTimeout("unterbrecher=1",5)  
             if(unterbrecher==0)  
             {  
             alert("booh!")  
             unterbrecher=0  
             }  
            }  
            
            

            Vielleicht hilft dir diese Struktur weiter.

            Kann sein, dass diese Version deine Funktion am anfang etwas verzögert, aber dafür ballert die onmousemove-Funktion nicht permanent los.

            MFG
            Griever

            --
            LOOK MY PAGE!
            1. Mahlzeit.

                
              var unterbrecher = 0  
              function test() {  
              setTimeout("unterbrecher=0",5)  
               if(unterbrecher==0)  
               {  
               alert("booh!")  
               unterbrecher=1  
               }  
              }  
              
              

              Kleiner Fehler ...

              MFG
              Griever

              --
              LOOK MY PAGE!
              1. Hallo an alle :)!

                Vielen Dank für die vielen Antworten! Jedoch hat sich das Problem in Luft aufgelöst. Und zwar hab ich nur den Rechner neugestartet. Seit dem läuft alles normal. Das hätte ich ehrlich gesagt ja auch gestern mal machen können :/. Naja, danke trotzdem nochmal für die Hilfe!

                Gruß,

                JCB

                1. Vielen Dank für die vielen Antworten! Jedoch hat sich das Problem in Luft aufgelöst. Und zwar hab ich nur den Rechner neugestartet. Seit dem läuft alles normal. Das hätte ich ehrlich gesagt ja auch gestern mal machen können :/. Naja, danke trotzdem nochmal für die Hilfe!

                  Vermutlich lag es eher am Cache, da hätte es auch ein [SHIFT]-[F5] getan.

                  Struppi.

                  1. Hi!

                    Vermutlich lag es eher am Cache, da hätte es auch ein [SHIFT]-[F5] getan.

                    Vielleicht. Aber was soll denn [SHIFT]-[F5] bewirken? Bei IE passiert da nix.

                    Gruß,

                    JCB

                    1. Vermutlich lag es eher am Cache, da hätte es auch ein [SHIFT]-[F5] getan.

                      Vielleicht. Aber was soll denn [SHIFT]-[F5] bewirken? Bei IE passiert da nix.

                      Stimmt. [Shift] und der Reloadbutton bewirkt ein neuladen der Seite unter umgehung des Caches.

                      Struppi.

                      1. Hallo,

                        Vielleicht. Aber was soll denn [SHIFT]-[F5] bewirken? Bei IE passiert da nix.

                        Stimmt. [Shift] und der Reloadbutton bewirkt ein neuladen der Seite unter umgehung des Caches.

                        Beim Moz/FF, richtig. Und beim IE erreicht man dasselbe mit Ctrl-F5 oder Ctrl und Klick auf den Reload-Button.

                        So long,

                        Martin

                        --
                        Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
                        Erfahrung bekommt man, indem man das nicht tut.
          2. Dann wird die Funktion sicher nicht so aufgerufen wie du es im Ausgangsposting beschrieben hast.

            Es ist eher etwas IE typisches:

            Statt einen alert() läßt sich das Verhalten leichter mit einem Tähler beobachten und dann ist alles in Ordnung.

              
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"  
                    "http://www.w3.org/TR/REC-html40/strict.dtd">  
              
            <html>  
            <head>  
             <title>Untitled</title>  
             <script type="text/javascript">  
             var c = 0;  
             function test() { window.status = c++;};  
             </script>  
            </head>  
              
            <body >  
            <p onMousemove="test()" style="width:200px; height:200px; border:solid;">x</p>  
            </body>  
            </html>  
            
            

            Struppi.

            1. Hallo Struppi,

              [...] leichter mit einem Tähler beobachten und dann ist alles in Ordnung.

              bitte _womit_?

              *scnr*

              Martin

              --
              Ich wollt', ich wär ein Teppich. Dann könnte ich morgens liegenbleiben.
              1. [...] leichter mit einem Tähler beobachten und dann ist alles in Ordnung.

                bitte _womit_?

                Oh stimmt, mit einem Thäler.

                Struppi.

            2. Hallo,

              Es ist eher etwas IE typisches:

              Statt einen alert() läßt sich das Verhalten leichter mit einem Tähler beobachten und dann ist alles in Ordnung.

              Vermutlich liegt es daran, dass ich keinen Tähler habe ;-)
              Aber das andauenrdes "feuern" bleibt jedoch dem IE vorbehalten (OK, Opera 5.12 und 6.05 macht das auch noch, aber ab 7.54 bis 9p1 auch nicht mehr und FF und Moz. ebenfalls nicht.)

              Aber einen Tähler zu haben ist trotzdem eine schöne Sache! :)

              Grüße
              Thomas

              1. Vermutlich liegt es daran, dass ich keinen Tähler habe ;-)

                Jajaja

                Aber das andauenrdes "feuern" bleibt jedoch dem IE vorbehalten (OK, Opera 5.12 und 6.05 macht das auch noch, aber ab 7.54 bis 9p1 auch nicht mehr und FF und Moz. ebenfalls nicht.)

                Wie gesagt bei mir feuert der onmove Event nur, wenn eine alert() Meldung erzeugt wird. Mit einem T^Z.. - ach ihr wißt schon - wird der Event nur gefeuert wenn die Maus bewegt wird.

                Aber einen Tähler zu haben ist trotzdem eine schöne Sache! :)

                Jop.

                Struppi.

  2. Hallo,

    [onmousemove] Jetzt wird die Funktion aber auch ausgeführt, wenn die Maus nicht bewegt wird?!

    Wirklich nicht bewegt? Manche Mäuse sind etwas nervös und der Zeiger zuckt, auch wenn das Tierchen ruhig auf dem Tisch liegt, ab und zu mal ein Pixel hin oder her.

    PS: Es geht lediglich um den IE6.0

    Meinst du damit, das Problem tritt nur im IE6 auf? Oder verwendest du nur den IE6 zum Testen (was sehr kurzsichtig wäre)? Denn wenn onmousemove bei anderen Browsern nicht zündet, kann man die Maus selbst (meine oben formulierte These) schon mal als Ursache ausschließen und muss wirklich nach Fehlern in deinem Code oder nach einem Browserbug suchen. Eine Online-Testseite wäre da bestimmt sehr hilfreich.

    So long,

    Martin

    --
    Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
    Die Zivilisation hatte begonnen.
    1. Hi!

      Wirklich nicht bewegt? Manche Mäuse sind etwas nervös und der Zeiger zuckt, auch wenn das Tierchen ruhig auf dem Tisch liegt, ab und zu mal ein Pixel hin oder her.

      Nene, da zuckt nix. Das ist es ja.

      Meinst du damit, das Problem tritt nur im IE6 auf? Oder verwendest du nur den IE6 zum Testen (was sehr kurzsichtig wäre)? Denn wenn onmousemove bei anderen Browsern nicht zündet, kann man die Maus selbst (meine oben formulierte These) schon mal als Ursache ausschließen und muss wirklich nach Fehlern in deinem Code oder nach einem Browserbug suchen. Eine Online-Testseite wäre da bestimmt sehr hilfreich.

      Ich meinte damit, dass ich nur für den IE entwickel. Und eine Onlinetestseite hab ich leider auch nicht, da das ein IntranetProjekt ist (daher auch nur IE ;)).

      Gruß,

      JCB