Hilfe bei Mauskoordinaten abfrage

alfa82

Grünschnabel
Hallo,
habe ein kleines Problem:
Ich möchte mir die Mauszeiger Position innerhalb eines php dokumentes anzeigen lassen, sprich ich habe in dem dokument eine Grafik mit 2000 * 2200 pixel und der user sollen irgendwo klicken können, und dann sollen x und y koordinaten zurück gegeben werden.
Ich habe mir da auch etwas geschrieben, aber der bestimmt die position immer nur vom aktuellen fenster auschnitt. Sprich wenn ich ganz nach rechts scrolle und dann klicke liefert er mir einen wert um die 1000, sollte aber eigentlich etwas mit 2000 liefern.

dann habe ich noch ein zweites problem:
ich habe das php dokument mittels IFRAME in einem anderen Php dokument mit 500 * 500 Pixel eingefügt. Dort läuft dann die Abfrage von den Koordinaten. Abgesehen davon, dass er maximal den wert 480 liefert, kann ich im Internet Explorer nicht scrollen. Wenn ich die Scroll leiste bewegen will, bestimmt er die aktuelle mauszeiger position.

Ich bin zur zeit etwas ratlos, vielleicht habt ihr ja eine Idee.

Vielen Dank im vorraus,

Alfa

Hier der Quelltext:
------------------------------------------------------------------------------

<html>
<body style="margin:0; padding:0;">
<head>
<SCRIPT LANGUAGE="Javascript">

function position(Ereignis) {
if(document.all){

alert("Browser: InternetExplorer\nX:" + window.event.clientX + " - Y:" + window.event.clientY);
top.location.href="insert.php?pixelb="+window.event.clientX+"&pixelh="+window.event.clientY+"&temp="+<? echo "$temp"; ?>;

} else {

alert("Browser: Mozilla und Co \nX:" + Ereignis.pageX + " - Y:" + Ereignis.pageY);
top.location.href="insert.php?pixelb="+Ereignis.pageX+"&pixelh="+Ereignis.pageY+"&temp="+<? echo "$temp"; ?>;

}
}
document.onmousedown = position;
</SCRIPT>
<IMG SRC="plan.jpg" style="margin:0;">
</body>
</html>



-------------------------------------------------------------------------------

und mit diesem Code Schnippsel binde ich die datei in die andere ein:

<iframe src="plan.php?temp=<? echo "$id" ?>" width="500" height="500" name="uniplan" scrolling="yes" frameborder="0">
<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen: Sie
k&nnen die eingebettete Seite &ber den folgenden Verweis
aufrufen:
</iframe>
 
Zum Einen.. wenn du den Event im Bild abfangen willst, musst du die Funktion auch dort aufrufen.

Zum Anderen....die von dir ermittelten Werte beziehen sich auf das Browserfenster, nicht auf das auslösende Element:
IE/Opera-->offsetX/offsetY
Netscape4/Geckos-->layerX,layerY

Code:
<script type="text/javascript">
<!--
function position(e) 
{
e = (document.all) ? window.event : e;
a = (document.all) ? 'offset' : 'layer';
alert("X:" + eval('e.' + a + 'X') + " - Y:" + eval('e.' + a +'Y'));
}
//-->
</script>
<!-- ... -->
<img SRC="plan.jpg" onmousedown="position(event)"width="2000"height="2200">

kleiner Tipp: wenn es dir nicht darum geht, einen alert auszugeben, sondern du die Koordinaten nur an ein PHP-Skript senden willst(ich schätze mal, das wird so eine Karte, wo man eintragen soll, wo man wohnt)...
dann verwende die Karte als graphischen Submit-Button in einem Formular(input type="image")... bei einem Klick auf einen solchen Button werden, sofern du ihm einen Namen gegeben hast, die Koordinaten an das Formularziel übermittelt, und das ohne JS-Klimmzüge :)
 

Neue Beiträge

Zurück