Как отключить все ссылки <a>, используя JavaScript в Firefox и Chrome - PullRequest
3 голосов
/ 04 ноября 2011

Я хочу отключить все ссылки href на моей странице. Я использую приведенный ниже код, и он работает нормально только в IE.

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

но я хочу работать во всех браузерах. Может кто-нибудь, пожалуйста, помогите мне, как преодолеть эту проблему.

Заранее спасибо.

Ответы [ 2 ]

16 голосов
/ 04 ноября 2011

Если вы не хотите изменять href ссылок, это можно сделать также:

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

Рабочая демонстрация здесь: http://jsfiddle.net/jfriend00/9YkJQ/.

5 голосов
/ 06 июня 2014

Это очень старая тема, но на случай, если кто-то еще зайдет на эту страницу, атрибут disabled можно установить с помощью:

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

Это распознается во всех браузерах и отключит ссылку. Однако события запуска по отключенной ссылке обрабатываются по-разному в разных браузерах и версиях. FF & Chrome будет по-прежнему запускать событие onclick, при котором IE8 +, не находящийся в режиме совместимости, не будет запускать события. В этом нет необходимости, если к привязке не подключен обработчик события onclick, обычный href не будет срабатывать после установки атрибута disabled. Чтобы остановить срабатывание события click, вышеприведенный код будет работать. Паренсы не требуются, и лично я не использую их в этом случае, так как полагаю, что парнины предназначены для группировки или для функции. Кажется ненужным в предложенном ранее решении.

...