5 Stimmen

So deaktivieren Sie alle <a>-Links mit Javascript in Firefox und Chrome

Ich möchte alle href-Links auf meiner Seite deaktivieren. Ich verwende den unten stehenden Code und es funktioniert nur im IE gut.

var elems = document.getElementsByTagName("*");
    var len = elems.length;
    for (i=0; i<len; i++) {
           if(elems[i].tagName.toLowerCase() == 'a'){
               elems[i].disabled = true;           
           }
       }

aber ich möchte, dass es in allen Browsern funktioniert. Kann mir jemand bitte helfen, wie man dieses Problem zu überwinden.

Vielen Dank im Voraus.

20voto

jfriend00 Punkte 632952

Wenn Sie die href der Links nicht ändern wollen, können Sie dies auch tun:

window.onload = function() {
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        anchors[i].onclick = function() {return false;};
    }
};

Arbeitsdemo hier: http://jsfiddle.net/jfriend00/9YkJQ/ .

4voto

David Punkte 49

Dies ist ein sehr altes Thema, aber nur für den Fall, dass jemand anderes auf diese Seite kommt, kann das Attribut "deaktiviert" durch die Verwendung von gesetzt werden:

element.setAttribute('disabled', 'disabled');

Dies wird von allen Browsern erkannt und der Link wird deaktiviert. Das Auslösen von Ereignissen bei einem deaktivierten Link wird jedoch in verschiedenen Browsern und Versionen unterschiedlich gehandhabt. FF und Chrome lösen weiterhin das onclick-Ereignis aus, während IE8+, nicht im Kompatibilitätsmodus, keine Ereignisse auslöst. Dies ist nicht notwendig, wenn es keine onclick-Ereignishandler verdrahtet, um den Anker, eine normale href wird nicht auf Feuer

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X