如何在Firefox和Chrome中使用javascript禁用所有<a>链接

ran*_*ran 4 javascript firefox google-chrome cross-browser

我想在我的页面中禁用所有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;           
           }
       }
Run Code Online (Sandbox Code Playgroud)

但我想在所有浏览器上工作.请有人帮我解决这个问题.

提前致谢.

jfr*_*d00 18

如果您不想更改链接的href,也可以这样做:

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

这里的工作演示:http://jsfiddle.net/jfriend00/9YkJQ/.


小智 5

这是一个非常老的线程,但万一其他人来到这个页面,可以使用以下方法设置disabled属性:

element.setAttribute('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)

这在所有浏览器中都被识别,并将禁用该链接.但是,禁用链接上的触发事件在不同的浏览器和版本中的处理方式不同.FF&Chrome仍将触发onclick事件,其中IE8 +(不是兼容模式)不会触发事件.如果没有连接到锚点的onclick事件处理程序,则不需要这样做,一旦设置了disabled属性,就不会触发正常的href.要停止触发click事件,上面的代码将起作用.parens不是必需的,并且在个人情况下,我不会在这种情况下使用它们,因为我认为parens用于分组或功能.在之前提供的解决方案中似乎没有必要.