Gunther: Cursorposition bei Link an JS-Funktion übergeben im NS

Hallo zusammen,

ich habe folgendes Problem:
Über einen normalen Textlink wird eine JS-Funktion aufgerufen. An diese Funktion soll neben dem Wert einer Variable auch noch die Cursorposition absolut zum Bildschirmfenster übergeben werden.

Für den MSIE ist das auch kein Problem. Der Link sieht so aus:
<a href="javascript:who($boards[threadid])"  onclick="pos_y=window.event.clientY, pos_x=window.event.clientX;">

Meine Frage: Wie muss das Ganze für den NS 6 aussehen?

Mir ist bekannt, dass der NS dafür die screenX, bzw. screenY Anweisungen benutzt, allerdings funzt das bei mir nur dann, wenn ich eine Eventüberwachung für das gesamte Dokument habe. Die kann ich aber nicht gebrauchen, da die Funktion ja nur beim anklicken des jeweiligen Links aufgerufen werden soll.

Für Tipps & Ideen besten Dank im voraus!

MfG

  1. Hatten wir diesen Thread nicht schon mal?
    OK, was mir einfällt, wäre: Lass den NS doch ruhig
    ständig überwachen, onclick machst du dann halt
    releaseEvents() oder so ähnlich. (Steht in SelfHTML)
    In der Funktion, in der du die Variablen brauchst,
    beginnst du halt wieder, die Events zu capturen.

    1. Hatten wir diesen Thread nicht schon mal?
      OK, was mir einfällt, wäre: Lass den NS doch ruhig
      ständig überwachen, onclick machst du dann halt
      releaseEvents() oder so ähnlich. (Steht in SelfHTML)
      In der Funktion, in der du die Variablen brauchst,
      beginnst du halt wieder, die Events zu capturen.

      Hey AB,

      ja hatten wir schon! ;-)
      Ich weiß auch: "Geduld ist eine Tugend..."

      Dein Vorschlag ist aber leider keine Lösung, da die Funktion ja "nur" beim Anklicken bestimmter Links aufgerufen werden soll, und nicht bei jedem Klick auf der Seite.

      MfG

      1. Eigentlich meite ich genau das:
        <a href="" onclick="document.releaseEvents()">
        oder so.
        Und wenn die Positionen ausgewertet werden sollen,
        das Überwachen wieder starten.
        Oder habe ich das Problem nicht ganz richtig verstanden?
        Wäre nicht schlecht, wenn ich wüßte, was weiter mit
        den Positionen passieren soll.

        1. Wäre nicht schlecht, wenn ich wüßte, was weiter mit
          den Positionen passieren soll.

          Also: Ich habe eine Seite mit mehreren Links. Bei einigen davon soll beim Anklicken die Cursorposition mit an die JS-Funktion übergeben werden, die mit dem Link aufgerufen wird <a href="javascript: myfunc($myvariable)" ...> !

          Die Funktion myfunc wiederum öffnet ein neues Fenster und die übergebene Cursorposition dient dazu, dieses neue Fenster zu positionieren (mit moveTo). Wie eingangs schon erwähnt - für den MSIE alles kein Problem, aber für den NS (>=6)???

          Achso: Die Ausgangsseite ist für alle Browser gleich, nur bei den Links wird nach Browsern unterschieden!

          Gruß Gunther

          1. Mal zusammenfassen.
            Wir haben:
            Links, die beim überfahren mit der Maus oder beim
            klicken die Mausposition an myfunc mitteilen.

            Eine Funktion myfunc, die die Positione der Maus erhält
            und das Fenster an dieser Postion öffnet.

            Im NS muß man auf jeden Fall die Events vom Seitenladen
            an überwachen.

            also <body onload="start()">
            function start()
            {
            document.captureEvents(Event.CLICK);
            document.onclick=beleg();
            }

            function beleg()
            {
            mausxpos=Ereignis.pageX;
            mausypos=Ereignis.pageY;
            }

            function myfunc()
            {
            window.open(usw usw, mausxpos, mausypos, usw usw);
            }

            WICHTIG! Die Variablen (In diesem Falle)
            mausxpos und mausypos müssen bereits außerhalb
            einer Funktion definiert werden, sonst werden sie nicht
            gefunden.

            Da die Funktion ja sofort ausgeführt wird, werden automatisch die Koordinaten des letzten Mausklicks
            übernommen.
            Noch ein Problem: Man kann auch mit der Tabulatortaste
            einen Link fokussieren und dann Leertaste drücken,
            um ihn 'auszuführen'. Dieses Script funktioniert dann
            nicht mehr. Egal, müssen die Leute halt auf die Links
            klicken.

            In Funktion start() muss abefragt werden, ob es ein
            NS ist; die Zeile
            document.onclick=beleg();
            ist auch MS - Syntax; dh sie bleibt immer Stehen.

            In beleg() wieder abfragen und

            mausxpos=Ereignis.pageX;
            mausypos=Ereignis.pageY;

            und

            mausxpos=Ereignis.event.X;
            mausypos=Ereignis.event.Y;

            trennen.
            So, eigentlich müßte jetzt alles laufen.

            1. Hey AB,

              erstmal vielen Dank für deine Mühe. Das finde ich sehr nett von dir.

              Du schreibst:

              Im NS muß man auf jeden Fall die Events vom Seitenladen
              an überwachen.

              Wenn dem so ist, dann werde ich das Fenster für NS-User eben fest positionieren, denn das kann ich nicht gebrauchen, da es ja auch noch etliche andere Links auf der Seite gibt. Und dafür wiederum eine extra Funktion machen, die dann prüft, ob es sich um einen Link handelt, der die Funktion myfunc aufrufen soll oder nicht, ist zu aufwendig.

              Ausserdem würde die Funktion ja auch immer dann aufgerufen werden, wenn der User irgendwo auf die Seite klickt (oder hab' ich da jetzt einen Denkfehler?).

              Auf jeden Fall nochmals vielen Dank!

              Gruß Gunther

              1. Die Funktion "beleg" wird bei jedem Klick aufgerufen,
                richtig.
                Aber "myfunc" wird ja erst beim Klicken auf den Link
                ausgeführt, und erst hier werden die Positionen des
                Klicks (also dem Klick auf den Link) gebraucht.
                Die Funktionen "beleg" und "myfunc" werden beinahe
                zeitgleich ausgeführt, daher sind die Positionen von
                "beleg" immer aktuell.

                1. Die Funktion "beleg" wird bei jedem Klick aufgerufen,
                  richtig.
                  Aber "myfunc" wird ja erst beim Klicken auf den Link
                  ausgeführt, und erst hier werden die Positionen des
                  Klicks (also dem Klick auf den Link) gebraucht.
                  Die Funktionen "beleg" und "myfunc" werden beinahe
                  zeitgleich ausgeführt, daher sind die Positionen von
                  "beleg" immer aktuell.

                  Hey AB,

                  hatte doch einen kleinen Balken vorm Kopf ;-)
                  So hab' ich's jetzt eingebaut:

                  <script language="Javascript" type="text/javascript">
                  if(navigator.appName=="Netscape") {
                  pos_x=0;
                  pos_y=0;
                  document.onmousedown = Position;
                  }

                  function Position(Ereignis) {
                  pos_x=Ereignis.screenX;
                  pos_y=Ereignis.screenY;
                  }

                  function myfunc() {
                  ...
                  }
                  </script>

                  Nochmals besten Dank (und wenn ich dir mal helfen kann s. Mail-Addy)!!!

                  Gruß Gunther