Klickkoordinaten erfassen
Rolf
- javascript
Hallo,
die Links einer verweissensitiven Grafik sind mehrere JavaScript-Funktionen.
Beim Funktionsaufruf sollen jeweils die X- und Y-Werte des Klicks erfasst und ausgewertet werden.
Habe SelfHTML schon bemüht, aber leider nix passendes gefunden.
Brauche also einen Schubs in die richtige Richtung ...
mbG Rolf
Hallo,
die Links einer verweissensitiven Grafik sind mehrere JavaScript-Funktionen.
Beim Funktionsaufruf sollen jeweils die X- und Y-Werte des Klicks erfasst und ausgewertet werden.
Kannst Du nicht an die JavaScript-Funktionen noch
Ereignis = window.event;
meineKlickEreignisFunktion(Ereignis.screenX, Ereignis.screenY);
dranhängen?
Gruss franc
@@franc:
Kannst Du nicht an die JavaScript-Funktionen noch
Ereignis = window.event;
meineKlickEreignisFunktion(Ereignis.screenX, Ereignis.screenY);dranhängen?
Nein. Von einer Kiosk-Anwendung mal abgesehen sind screenX und screenY ziemlich unbrauchbar.
clientX, und clientY liefern die Mauscursorposition im Dokument.
Live long and prosper,
Gunnar
Lieber franc,
Kannst Du nicht an die JavaScript-Funktionen noch
Ereignis = window.event;
meineKlickEreignisFunktion(Ereignis.screenX, Ereignis.screenY);dranhängen?
bei Nicht-IEs wird in der Regel das Eventobjekt mitgeliefert und window.event ist dort entsprechend nicht "befüllt".
Besser so:
meineKlickEreignisFunktion = function (e) {
if (!e) {
e = window.event;
}
var x = e.clientX, y = e.clientY;
// jetzt was Schönes mit x und y anfangen...
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix,
Besser so:
meineKlickEreignisFunktion = function (e) {
if (!e) {
e = window.event;
}
var x = e.clientX, y = e.clientY;
// jetzt was Schönes mit x und y anfangen...
}
irgend etwas ist daran noch falsch, weil:
In der Zeile mit: `var x = e.clientX, y = e.clientY;`{:.language-javascript}
kommt: Error: Object erforderlich
Zumindestens im IE6, und mit dem \_muss\_ es klappen!
Bei anderen stört es nicht, wenn es geht ... ;-)
mbG Rolf
irgend etwas ist daran noch falsch, weil:
Nein, daran ist sicher nichts falsch, sondern der Aufruf der Funktion ist falsch.
Zumindestens im IE6, und mit dem _muss_ es klappen!
Bei anderen stört es nicht, wenn es geht ... ;-)
Dann wird es keine wichtige Funktion sein, wenn sie nur ein kleiner Teil der Besucher sehen soll.
Struppi.
Hai Struppi,
irgend etwas ist daran noch falsch, weil:
Nein, daran ist sicher nichts falsch, sondern der Aufruf der Funktion ist falsch.
na-ja, die erste Zeile wurde natürlich schon vorher modifiziert.
Der Fehler war, dass das UseMap keinen passenden Event hat.
Aber das Bild hat ihn, und darüber bekommt man dann auch die Koordinaten.
Und wenn man sie in globale Variable ablegt, können die Funktionen der UseMap damit weiterarbeiten.
Zumindestens im IE6, und mit dem _muss_ es klappen!
Bei anderen stört es nicht, wenn es geht ... ;-)
Dann wird es keine wichtige Funktion sein, wenn sie nur ein kleiner
Teil der Besucher sehen soll.
wieso kleiner Teil?
Auf 'nicht' IT-Seiten dominiert der IE und in us-Firmennetzen darf man nur M$ verwenden.
Wenn jemand kommt: hier ist Geld, mach dass es auch mit Lynx geht, ist das schon okay.
Aber das wird nicht passieren ... ;-)
mbG Rolf
irgend etwas ist daran noch falsch, weil:
Nein, daran ist sicher nichts falsch, sondern der Aufruf der Funktion ist falsch.
na-ja, die erste Zeile wurde natürlich schon vorher modifiziert.
Der Fehler war, dass das UseMap keinen passenden Event hat.
Natürlich.
Aber das Bild hat ihn, und darüber bekommt man dann auch die Koordinaten.
Und wenn man sie in globale Variable ablegt, können die Funktionen der UseMap damit weiterarbeiten.
Wie gesagt, wenn du die Funtkion richtig aufrufst dann hast du auch den Event.
Zumindestens im IE6, und mit dem _muss_ es klappen!
Bei anderen stört es nicht, wenn es geht ... ;-)
Dann wird es keine wichtige Funktion sein, wenn sie nur ein kleiner
Teil der Besucher sehen soll.
wieso kleiner Teil?
Auf 'nicht' IT-Seiten dominiert der IE und in us-Firmennetzen darf man nur M$ verwenden.
Keine ahnung wogher deine Zahlen kommen, ich kann das für die Seiten die ich betreue nicht bestätigen.
Hier mal die Statistik (02/2008) einer Fußballseite mit allerdigns einem geschlossenem Nutzerkreis:
1 279621 52.44% Netscape 5.0 or Firefox
2 108041 20.26% Internet Explorer 6.0 (Windows)
3 81605 15.31% Internet Explorer
4 81267 15.24% MSIE 7.0
5 19689 3.69% Opera
und einem Shop für Klammotten und Musik:
1 1921894 42.37% Netscape 5.0 or Firefox
2 1119008 24.67% Internet Explorer
3 1117977 24.65% MSIE 7.0
4 989674 21.82% Internet Explorer 6.0 (Windows)
5 195596 4.31% Spider: Google.com
6 139230 3.07% Opera
Ich seh keine Dominanz eine Browsers.
Struppi.
Hallo Struppi,
Aber das Bild hat ihn, und darüber bekommt man dann auch die Koordinaten.
Und wenn man sie in globale Variable ablegt, können die Funktionen der UseMap damit weiterarbeiten.
Wie gesagt, wenn du die Funtkion richtig aufrufst dann hast du auch den Event.
nur mal zur Info:
<img src="img/nistermap.jpg" width="794" height="985"
border="0" usemap="#mymap" onclick="coords()">
Im IE wird die Funktion coord(); wie erhofft ausgeführt.
Der FF kümmert sich nicht weiter drum, was gefällt ihm daran nicht?
Die erste Zeile der Funktion ist ein: alert('Hallo');
und die Fehler-Console bleibt auch reinweiss ...
mbG Rolf
nur mal zur Info:
<img src="img/nistermap.jpg" width="794" height="985"
border="0" usemap="#mymap" onclick="coords()">
Wo ist der event?
Es muss heißen: `onclick="coords(event)`{:.language-javascript}
Struppi.
Hallo Struppi,
nur mal zur Info:
<img src="img/nistermap.jpg" width="794" height="985"
border="0" usemap="#mymap" onclick="coords()">
> Wo ist der event?
> Es muss heißen: `onclick="coords(event)`{:.language-javascript}
vergiss das Wort.
Sobald man das `usemap="#mymap"`{:.language-html} entfernt, klappt es.
Aber wenn das weg ist, werden die weiterverarbeitenden Funktionen nicht mehr aufgerufen.
Ich brauche beides, die verweissensitive Grafik UND die Clickkoordinaten!
Denn je nach Bereich passiert mit den Koordinaten etwas anderes.
- einmal ändert sich die Bewegungsrichtung eines dynamischen Objektes
- und das andere Mal werden Störgrößen eines Prozesses variiert
Der IE führt zuerst die Clickfunktion aus, welche die Koordinaten in globale Variable
schreibt und dann folgt die Funktion aus der UseMap. Fällt die UseMap weg, muss man den
angeklickten Bereich aus den Koordinaten erst mal berechnen, was z.T. sehr aufwendig ist.
mbG Rolf
Hallo Struppi,
nur mal zur Info:
<img src="img/nistermap.jpg" width="794" height="985"
border="0" usemap="#mymap" onclick="coords()">
> > Wo ist der event?
> > Es muss heißen: `onclick="coords(event)`{:.language-javascript}
> vergiss das Wort.
> Sobald man das `usemap="#mymap"`{:.language-html} entfernt, klappt es.
Es klappt auch vorherm nur eben nicht auf den Flächen, die du in der map verwendest, aber das ist kein Problem du kannst auch dort einen onclick Handler einbauen.
> Ich brauche beides, die verweissensitive Grafik UND die Clickkoordinaten!
Kein Problem. Das Event Objekt existiert in jedem Browser
Struppi.
Hai Struppi,
Ich brauche beides, die verweissensitive Grafik UND die Clickkoordinaten!
Kein Problem. Das Event Objekt existiert in jedem Browser
sorry,
mit hingeworfenen Bruchstücken und Behauptungen komme ich nicht zum Ziel.
Ein(1) Link auf ein funktionierendes Beispiel hätte zwar gereicht, aber
entweder gibt es ihn gar nicht, oder Du kennst ihn nicht, was solls.
Vier Stunden sinnfreie Fummelei reichen. Ich gebe das jetzt auf.
mbG Rolf
Ich brauche beides, die verweissensitive Grafik UND die Clickkoordinaten!
Kein Problem. Das Event Objekt existiert in jedem Browser
sorry,
mit hingeworfenen Bruchstücken und Behauptungen komme ich nicht zum Ziel.
Ein(1) Link auf ein funktionierendes Beispiel hätte zwar gereicht, aber
entweder gibt es ihn gar nicht, oder Du kennst ihn nicht, was solls.
Vier Stunden sinnfreie Fummelei reichen. Ich gebe das jetzt auf.
Dito. Ich habe dir gezeigt wie es geht, du hast aber nur Fragemente gezeigt. Ich weiß nicht was du konkret machst und kann dir von daher nur mit Tipps und Hinweisen helfen, wenn dir das zu wenig ist, dann ist das definitiv dein Problem, nicht meins.
Und - warum soll ich ein Beispiel bauen? steh ich in irgendeiner Art in deiner Schuld?
Du hast die Frage, bei der ich dir gerne helfe, aber du musst die Informationen die nötig sind liefern. Gemecker hilft dir nicht und mir ist es egal.
Struppi.
Hai Struppi,
Und - warum soll ich ein Beispiel bauen?
steh ich in irgendeiner Art in deiner Schuld?
das wurde weder verlangt, erwartet oder gar behauptet ... !
Ich wollte lediglich mitteilen, dass die hilfreich gemeinten Tips hier nur Verwirrung
auslösen und deshalb ein Link zu einem funktionierenden Beispiel hilfreich wäre.
Dass Du extra etwas zusammenbastelst, hätte ich nie erwartet, warum auch ...
Das ist nicht Sinn und Zweck eines Forums!
Die Frage war IMHO klar gestellt (siehe OP):
die Links einer verweissensitiven Grafik sind mehrere JavaScript-Funktionen.
Beim Funktionsaufruf sollen jeweils die X- und Y-Werte des Klicks erfasst
und ausgewertet werden.
Nachtrag:
Es geht um die Koordinaten auf der Grafik, nicht in der Seite wie hier etwa!
mbG Rolf
Die Frage war IMHO klar gestellt (siehe OP):
die Links einer verweissensitiven Grafik sind mehrere JavaScript-Funktionen.
Beim Funktionsaufruf sollen jeweils die X- und Y-Werte des Klicks erfasst
und ausgewertet werden.
Dafür hast du das event Objekt.
Nachtrag:
Es geht um die Koordinaten auf der Grafik, nicht in der Seite wie hier etwa!
Dir geht es um die Postion relativ zur Grafik?
Die musst du dir selber ausrechnen, aus der differenz der Mausposition und der Bildposition.
Struppi.
Dir geht es um die Postion relativ zur Grafik?
Die musst du dir selber ausrechnen, aus der differenz der Mausposition und der Bildposition.
echt,
der IE kann es und der FF nicht? nit mööööglich ... ;-)
Okay, dann eben ohne den FF.
mbG Rolf
Okay, dann eben ohne den FF.
Das was ich beschreibe geht ohne Probleme in beiden Browsern.
Struppi.
Dir geht es um die Postion relativ zur Grafik?
Die musst du dir selber ausrechnen, aus der differenz der Mausposition und der Bildposition.
echt,
der IE kann es und der FF nicht? nit mööööglich ... ;-)
Okay, dann eben ohne den FF.
Diese Aussage ergibt keinen Sinn, wer hat was über irgendeinen Browser gesagt? Was willst du mir damit überhaupt sagen?
Ich hab mittlerweile den Eindruck, dir liegt sowieos nichts an der Lösung deines Problemes und ich verplemper nur meine Zeit, ich werde also den Thread ausblenden, vielleicht findet sich ja jemand anderes der mit dir spielt.
Struppi.
mit hingeworfenen Bruchstücken und Behauptungen komme ich nicht zum Ziel.
und dann möchte ich mal auf den Verlauf dieses threads Hinweisen:
Denn hast du bekommen.
Aha! Wir wissen aber nicht warum ein richtiger Code bei dir falsch ist, hellsehen kann hier keiner.
na-ja, die erste Zeile wurde natürlich schon vorher modifiziert.
Welche erste Zeile? dieser Satz ergibt als Antwort auf meine Aussage keine Sinn.
Dann hast du endlich gezeigt, dass du einen onclick Event über alle anderen Events legen willst, was mir bis dato tatsächlich nicht klar war. Daher mein nochmaliger Hinweis auf das event Objekt (das ich dir bereits gezeigt hatte) und dann kommt so eine bescheuerte Schlußfolgerung, wo du mir noch was unterschieben willst?
Wenn du stattdessen einfach mal zeigst, was du konkret machst und wo es hakt hätte man dir von Anfang helfen können, so haben wir einen Thread seit 17 Stunden, der zu keinem Ergebnis kommt, weil wir nicht Wissen was du willst.
Struppi.
@@Rolf:
sorry,
mit hingeworfenen Bruchstücken und Behauptungen komme ich nicht zum Ziel.
Sorry, wer wirft hier bruckstückweise Quelltext hin?
Ein(1) Link auf ein funktionierendes Beispiel hätte zwar gereicht,
Den hast du von mir bekommen. Vor über 10 Stunden. Wenn du das Posting nicht bis zum Ende gelesen hast, ist das dein Problem.
Live long and prosper,
Gunnar
@@Rolf:
Beim Funktionsaufruf sollen jeweils die X- und Y-Werte des Klicks erfasst und ausgewertet werden.
Habe SelfHTML schon bemüht, aber leider nix passendes gefunden.
Dann stellst du dich reichlich blöd an.
Bei der Suche nach "koordinaten" erhält man u.a.: „SELFHTML: JavaScript / Objektreferenz / event […] So können Sie bei einem Mausklick beispielsweise die genaue Position ermitteln, wo der Mausklick erfolgte, […]“
Interessant könnten auch die Threads Mausposition ermitteln und bei 'onclick' auf 'area' an Bildobjekt kommen sein.
Live long and prosper,
Gunnar
Hallo Gunnar,
mecker nicht über die Deppen, Du brauchst sie mehr, als sie Dich!
Ach-ja, so blöd, dass ich mich auf Dein Ausdrucksniveau herablasse,
bin ich dann doch noch nicht ... ;-)
mbG Rolf
@@Rolf:
mecker nicht über die Deppen,
Ich strafe lediglich Leute Lügen, die hier behaupten, sie hätten überall gesucht, aber nichts gefunden – durch Aufzeigen der Ergebisse einer Suche mit wenigen oder wie hier sogar nur einem schlüssigen Suchbegriff.
Das sollte dazu dienen, die Suchstragie zu verbessern. Du hättest es bei einem einfachen „Danke“ bewenden lassen können.
Du brauchst sie mehr, als sie Dich!
??
Ach-ja, so blöd, dass ich mich auf Dein Ausdrucksniveau herablasse,
bin ich dann doch noch nicht ... ;-)
Ich hab nicht behaupted, du seist blöd, sondern dass du dich blöd angestellt hast. Und was an dem Ausdruck niedriges Nieveau sein soll, weiß ich auch nicht.
Live long and prosper,
Gunnar
Hai Gunnar,
Du hättest es bei einem einfachen „Danke“ bewenden lassen können.
und für was bitte?
Nach 'blöd' kam wohl noch was?
Sorry, aber nach dem Statement liest doch niemand mehr weiter!
Du brauchst sie mehr, als sie Dich!
??
Was bitte verstehst Du daran nicht?
Das Niedere kann immer ohne das Höhere existieren,
aber ohne das Niedere entsteht erst gar kein Höheres.
mbG Rolf
Hi,
Du hättest es bei einem einfachen „Danke“ bewenden lassen können.
und für was bitte?
Dafuer, dass dir gezeigt wurde, wie eine halbwegs intelligente Suche dich zum Ziel haette fuehren koennen.
Nach 'blöd' kam wohl noch was?
Sorry, aber nach dem Statement liest doch niemand mehr weiter!
Diese Form von ADS ist dein Problem.
MfG ChrisB