Heizer: Link nicht folgen

Liebes Forum

Es gibt ja diese schöne Methode, einen Link so zu schreiben, daß er mit und ohne Javascript funktioniert:

<a href='somewhere.html' onclick='somefunc(value); return false;'>

Jetzt möchte ich aber den Event nicht über onclick einbinden, sondern über addEventListener.

document.getElementById(someId).addEventListener("click",somefunc);

Die Frage ist jetzt aber, wie ich es schaffe, daß dem Link nicht gefolgt wird, wenn Javascript funkioniert. Mit dem return Wert der Funktion klappt es nicht, denn dann müßte in der ersten Syntax ja onclick='return somefunc(value);' stehen, aber so bekomme ich das nicht hin.

Gibt es dafür eine einfach Lösung ?

Danke

Heizer

  1. Hi,

    Die Frage ist jetzt aber, wie ich es schaffe, daß dem Link nicht gefolgt wird, wenn Javascript funkioniert.

    definiere doch in der somewhere.html ein self.close()
    Wie man das Öffnen eines Links verhindert, der als solcher gedacht ist, bleibt mir wohl ein Rätsel.

    MfG Hopsel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
  2. Hallo Heizer,

    ändere doch einfach das Linkziel per Javascript auf #, in etwa so:

    document.getElementById(someId).href = "#";

    Dann müsste der Browser dem Link nicht mehr folgen, ohne Javascript bleibt das Ziel gleich und ältere Browser können trotzdem folgen. Andererseits kann man dann das Linkziel wieder nicht in einem neuen Fenster/Tab öffnen, also ist die Lösung vielleicht doch nicht so toll

    Mit freundlichen Grüßen

    Cochrane

    --
    Güter auf die Bahn!
    1. Hallo Heizer,

      ändere doch einfach das Linkziel per Javascript auf #, in etwa so:

      document.getElementById(someId).href = "#";

      Hi hi, ja, das hätte wahrscheinlich gelangt, ich habe mittlerweile einfach removeAttribute("href") gemacht, das klappt auch.

      Andererseits kann man dann das Linkziel wieder nicht in einem neuen Fenster/Tab öffnen, also ist die Lösung vielleicht doch nicht so toll

      Auf der Seite werden Daten gesammelt. Eben entweder mit Javascript oder durch neuladen der Seite. Es wäre nicht sinnvoll, dafür ein neues Fenster zu öffnen.

      Danke dir

      Heizer

      1. hi,

        ändere doch einfach das Linkziel per Javascript auf #, in etwa so:

        document.getElementById(someId).href = "#";

        Hi hi, ja, das hätte wahrscheinlich gelangt

        nein, das hätte in manchen browsern dafür gesorgt, dass wieder an den anfang der seite gesprungen wird. kann ziemlich nervig sein ...

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hallo Heizer,

        document.getElementById(someId).href = "#";

        ich habe mittlerweile einfach removeAttribute("href") gemacht, das klappt auch.

        Funktionieren dann die Pseudoklassen für Verweise immer noch wie gewünscht? a:link darf nach Entfernung des href-Attributs nicht mehr greifen, der IE hat so weit ich mich erinnere dann auch Probleme mit :hover usw.

        Ich weiß nicht, ob das in der Praxis ein Problem darstellt, aber du solltest darauf achten.

        Grüße
        Roland