Mausposition und Übergabe als Variable
jörn
- javascript
Hallo Jungs,
sitze gerade vor dem Problem, die an einem Image durch OnClick
ein Fenster zu öffen. Natürlich möchte ich bei Fenster nicht jedesmal
die Koordinaten des Fensters angeben, sondern den Mouseclick als Variable
festhalten und dort das Fensterchen öffnen.
Script sieht so aus :
<script language="javascript">
var x = 0; var y = 0;
function getpos(Ereignis)
{
x = Ereignis.pageX;
y = Ereignis.pageY;
// alert("Position X: " + x + " Position Y: " + y);
}
document.onClick = getpos;
function hilfe(file,w,h)
{
hwin = window.open(file,"Kontexthilfe","width="+w+",height="+h+",resizable=yes,scrollbars=yes,toolbar=no,status=no,scrolling=auto,screenX="+x+",screenY="+y);
hwin.focus();
}
</script>
<layer id="Hilfe_ID" name="Hilfe2" top="250" left="350" width="200">
Hilfe <a href="javascript:hilfe('hilfe_allgemein.cfm?nummer=5','400','250')" onClick="getpos"><img src="hilfe_weissklein.gif" width="15" height="13" alt="" border="0"></a>
</layer>
Leider kann ich zwar überall auf der Seite die Mausposition abfragen, aber nicht
beim Image das Fenster öffen.
Wenn jemand Hilfe weiß, wäre echt super, aber vermutlich ist gutes RAD teuer.
Danke Jörn
Hallo Jungs,
sitze gerade vor dem Problem, die an einem Image durch OnClick
ein Fenster zu öffen. Natürlich möchte ich bei Fenster nicht jedesmal
die Koordinaten des Fensters angeben, sondern den Mouseclick als Variable
festhalten und dort das Fensterchen öffnen.
Script sieht so aus :
<script language="javascript">
var x = 0; var y = 0;
function getpos(Ereignis)
{
x = Ereignis.pageX;
y = Ereignis.pageY;
// alert("Position X: " + x + " Position Y: " + y);
}
document.onClick = getpos;
function hilfe(file,w,h)
{
hwin = window.open(file,"Kontexthilfe","width="+w+",height="+h+",resizable=yes,scrollbars=yes,toolbar=no,status=no,scrolling=auto,screenX="+x+",screenY="+y);
hwin.focus();
}
</script>
zunächst: event.pageX und event.pageY kennt nur der Netscape, mein Opera z.B. versteht nur event.x und event.y
zweitens: Was hindert dich, bei window.open noch left=event.x und top=event.y anzugeben? dann öfnnet er das Fenster mit der linken oberen Ecke an der Stelle, an der geklickt wurde.
Hallo Vimes
zunächst: event.pageX und event.pageY kennt nur der Netscape, mein Opera z.B. versteht nur event.x und event.y
hab ich geändert, klappt aber dann nimmer weil er behauptet Position undefind
zweitens: Was hindert dich, bei window.open noch left=event.x und top=event.y anzugeben? dann öfnnet er das Fenster mit der linken oberen Ecke an der Stelle, an der geklickt wurde.
wenn ich dich richtig verstehe, sollte es dann so aussehen :
function hilfe(file,w,h)
{
//alert("Position X: " + x + " Position Y: " + y);
hwin = window.open(file,"Kontexthilfe","width="+w+",height="+h+",top="+Ereignis.PageX+",left="+Ereignis.PageYx+",resizable=yes,scrollbars=yes,toolbar=no,status=no,scrolling=auto,screenX="+ x +",screenY="+ y);
hwin.focus();
}
so läuft das aber leider auch ned.
Trotzdem Danke
Gruß Jörn
Hallo Vimes
zunächst: event.pageX und event.pageY kennt nur der Netscape, mein Opera z.B. versteht nur event.x und event.y
hab ich geändert, klappt aber dann nimmer weil er behauptet Position undefind
dann hast du da was falsch gemacht.
In Opera & IE funktionert das folgende:
<script language="JScript" type="text/jscript">
<!--
function Coords()
{
alert("x = " + window.event.x + "/ y = " + window.event.y);
}
//-->
</script>
...
<div style="position:relative; left:50px; top:140px; width:100px;
background-color:#FFFFE0">
<p onClick="Coords()">Klick mich</p>
</div>
zweitens: Was hindert dich, bei window.open noch left=event.x und top=event.y anzugeben? dann öfnnet er das Fenster mit der linken oberen Ecke an der Stelle, an der geklickt wurde.
wenn ich dich richtig verstehe, sollte es dann so aussehen :
function hilfe(file,w,h)
{
statt x und y window.event.x bzw .y
//alert("Position X: " + x + " Position Y: " + y);
hwin = window.open(file,"Kontexthilfe","width="+w+",height="+h+",top="+Ereignis.PageX+",left="+Ereignis.PageY+",resizable=yes,scrollbars=yes,toolbar=no,status=no,scrolling=auto,screenX="+ x +",screenY="+ y);
was genau läuft da nicht?
macht er kein Fenster auf? -> dann gibt es wohl einen syntaktischen Fehler (->Fehlermeldung?) - oder du hast deinen browser so eingestellt, dass er es nicht erlaubt, neue Fenster zu öffen.
Macht er das Fenster an der falschen Stelle auf? dann liegt es am fehlenden Browserverständnis für PageX und ScreenX resp. Y.
hwin.focus();
}