Hendrik Otting: Mausposition bei NS

Hallo Forum

Wo versteckt eigentlich der NS die aktuelle Mausposition ?

bzw. warum klappt das mit IE aber nit mit NS ?

function setmousepos(){
mouseposx = window.event.x;
mouseposy = window.event.y;
}
function show(showobj) {
    if (ns) {
eval('parent.frames["'+namefuerhauptframe+'"].document.layers.'+showobj+'.visibility = "show"');
eval('parent.frames["'+namefuerhauptframe+'"].document.layers.'+showobj+'.top = mouseposy');
eval('parent.frames["'+namefuerhauptframe+'"].document.layers.'+showobj+'.left = mouseposx');
  }
if (ie) {
parent.frames[namefuerhauptframe].document.all[showobj].style.left = mouseposx;
parent.frames[namefuerhauptframe].document.all[showobj].style.visibility = "visible";
parent.frames[namefuerhauptframe].document.all[showobj].style.top = mouseposy;
  }
}

wobei onMousemove=("setmousepos();") beim Überfahren eines Layers/Div aufgerufen wird...

mfg
       Hendrik

PS. Gibts eigentlich nen eleganteren weg als das leidige eval ( ...) um beim NS objekte anzusprechen ?

  1. Hallo Hendrik

    Wo versteckt eigentlich der NS die aktuelle Mausposition ?

    Der Code, den du gepostet hast, ist typisch fuer MSIE. Leider unterscheiden sich die Event-Modelle beider Browser gewaltig. Beide kennen allerdings das event-Objekt in JavaScript. Und das ist denn auch die "Schaltzentrale" fuer cross-browser-Event-Handling. Zum Einstieg solltest du dir mal <../../tecbc.htm> reinziehen. Dort wird ein Beispiel zur Tastaturabfrage fuer beide Browser behandelt - mit der Mausposition ist es ganz aehnlich.

    viele Gruesse
      Stefan Muenz

    1. Hallo Hendrik

      Wo versteckt eigentlich der NS die aktuelle Mausposition ?

      Der Code, den du gepostet hast, ist typisch fuer MSIE. Leider unterscheiden sich die Event-Modelle beider Browser gewaltig. Beide kennen allerdings das event-Objekt in JavaScript. Und das ist denn auch die "Schaltzentrale" fuer cross-browser-Event-Handling. Zum Einstieg solltest du dir mal <../../tecbc.htm> reinziehen. Dort wird ein Beispiel zur Tastaturabfrage fuer beide Browser behandelt - mit der Mausposition ist es ganz aehnlich.

      viele Gruesse
        Stefan Muenz

      Hi Stefan

      soweit war das schon klar...
      Ich wusste nicht in welschem Objektnamen die Position versteckt wird...

      Hab dann gestern mal folgendes probiert :
      function setmousepos(){return;
      if (ie) {mouseposx = window.event.x;
         mouseposy = window.event.y;
         }
      if (ns) {mouseposx = event.clientX;
         mouseposy = event.clientY;
         }
      }
      Ohne das Return ist mir der NS 4.5 inc. JS Debugger so was von abgeraucht !
      (Auf einmal hatte er ne andere Standartfont...4.6 hat sich einfach nur zu gemacht...)
      Ist das event.clientX/Y jetzt die mausposition? So richtig sicher war ich mir nähmlich nit...

      schluchz
                  Hendrik

      1. Wo versteckt eigentlich der NS die aktuelle Mausposition ?

        Hah :
        Netscape muss erst mal angeschubst werden um diese events überhaupt zu registrieren !

        z.B. :

        if (ns){window.captureEvents(Event.MOUSEMOVE); window.onMouseMove = setpos;

        und dann :

        function setmousepos(){
        if (ie) {mouseposx = window.event.x;
           mouseposy = window.event.y;
           }
        if (ns) {return;
           }
        }
        function setpos(ev){
        if (ie) {return;
           }
        if (ns) {mouseposx=ev.pageX;
           mouseposy=ev.pageY;
           }
        }

        Hendrik

        Ich bete drum das sich Opera nicht noch weiter verbreitet, sonst müssen wir uns für den auch noch was neues einfallen lassen !

        Hendrik