4

可能重复:
覆盖 Javascript 中链接 ('a') 对象的默认行为

使主页中的整个页面链接只读的最佳方法是什么(不可点击href=#href="javascript:void()"基于用户操作。

我只想使用 Javascript 和 CSS 来实现这一点。

4

7 回答 7

9

只有CSS

a {
    pointer-events: none;
    cursor: default;
}
于 2012-10-05T10:50:08.073 回答
5

尝试

用jQuery

$("a").click(function() { return false; });

香草js

        var elements = document.getElementsByTagName("a");
        for (var i = 0; i < elements.length; i++) {
            elements[i].onclick = function () { return false; }
        }
于 2012-10-05T10:49:35.347 回答
2

像这样的东西应该工作

var anchors = document.getElementsByTagName('a');

for(var i=0,len=anchors.length;i<len;i++){
   anchors[i].href = '#';
}
于 2012-10-05T10:51:21.993 回答
2

这是CMS通过使用事件委托技术的绝妙解决方案。

document.onclick = function (e) {
  e = e ||  window.event;
  var element = e.target || e.srcElement;

  if (element.tagName == 'A') {
    someFunction(element.href);
    return false; // prevent default action and stop event propagation
  }
};

演示

于 2012-10-05T11:09:44.470 回答
0

从...开始:

links = document.getElementsByTagName('a')

然后:

for (var i=0; i<links.length; ++i) {
    // disable a link, for instance like this
    links[i].href = "javascript:void()"
}
于 2012-10-05T10:50:40.283 回答
0

jQuery

$("a").on("click",function(e) { e.preventDefault();   
   // anything you want to do on click
});
于 2012-10-05T10:53:02.360 回答
0

使用replaceChild怎么样- 它可以在 NS6/IE6/Chrome1/FX1 左右的所有浏览器中使用

演示

纯JS:

window.onload=function() {
  var anchors = document.getElementsByTagName('a');

  for(var i=anchors.length-1;i>=0;i--){
    var span = document.createElement("span");
    span.innerHTML=anchors[i].innerHTML;
    anchors[i].parentNode.replaceChild(span,anchors[i])
    span=null;
  }
}

或者我在页面评论中的第一个建议:

window.onload=function() {
  var anchors = document.getElementsByTagName('a');
  for(var i=anchors.length-1;i>=0;i--){
    anchors[i].onclick=function() { return false }
  }
}
于 2012-10-05T11:06:53.827 回答