Mausposition bei NS
Hendrik Otting
- javascript
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 ?
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
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
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