使站点中的所有超链接都不执行任何操作

时间:2011-11-16 20:08:28

标签: javascript

我想创建一个禁用超链接的脚本,然后在单击一个时激活一个函数。

<a href="http://google.com"></a>

should work as

<a onclick="talk('http://google.com)'></a>

有没有办法知道何时需要重定向,而是运行“talk()”或显示警告窗口?

2 个答案:

答案 0 :(得分:3)

var anchors = document.getElementsByTagName('a');
for (var a = 0; a < anchors.length; a++){
  anchors[a].href = "javascript:talk('" + anchors[a].href + "');";
}

尽管有一些自由裁量权......

答案 1 :(得分:2)

此解决方案使用(DOM Level 0)事件处理而不是直接触摸href。

(function () {
    var anchors = document.getElementsByTagName('a'),
        i = anchors.length;
    while (i--) {
        anchors[i].onclick = function () {
            talk(this.href);
            return false;
        };
    }
}());

编辑:这种方法的好处是,在你想要的时候把href放回去要简单得多。给定一个锚tAnchor,您只需要取消设置onclick属性:

tAnchor.onclick = null