• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

AJAX: Links deaktivieren wenn JS angeschaltet ist?

  • Ersteller Ersteller ohrflieger
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
O

ohrflieger

Guest
Moin,

Folgendes: Ich möchte eine Website mit AJAX gestalten und eine Alternative für Nutzer ohne JS lassen, genau gesagt bei Links.
Das heißt, ich definiere z.B. einen Link zu einem Kontaktformular:
HTML:
<a href="kontakt.php">Kontakt</a>
Wenn JavaScript nicht angeschaltet ist, lädt der Browser die kontakt.php ganz normal.
Ist aber JS an und kann somit AJAX verwendet werden, soll der Browser bei Klick auf den Link nicht die kontakt.php öffnen, sondern eine Funktion aufrufen (die dann z.B. das Kontaktformular nachlädt).

Wie kann man den Link zuverlässig deaktivieren und die Funktion stattdessen einbauen?
 
Das Event mit preventDefault() canceln:
Code:
linkRef.onclick = function (evt) {
    evt = evt || window.event; //letzeres für den IE

    // mach was

   if (typeof event.preventDefault != "undefined") event.preventDefault();
   else event.returnValue = false; // wiedermal IE
}
Oder mit Hilfe von design-noir | Webentwicklung | JavaScript | addEvent & removeEvent:
Code:
addEvent(linkRef, "click", function (evt) {
    evt.preventDefault();
});
Oder ganz klassisch:
Code:
<a href="foo.html" onclick="doSomeAJAX(); return false">Link</a>
 
Danke für deine Antwort!
Welche methode würdest du denn benutzen/verwendest du? Welche ist "besser" (ich weiß, die besser-Frage ist eigentlich sinnlos)?
Funktioniert das letzte mit "return false;" bei allen Browsern?
 
Letztes funktioniert wunderbar. Ich bevorzuge natürlich addEvent() und removeEvent(), diese Methode ist Standard-gemäß, schneller, einfacher und besser wartbar.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben