如何在加载jQuery之前禁用所有链接?

时间:2011-10-27 00:57:00

标签: javascript

我需要一个纯Javascript代码来在加载页面时禁用所有链接,避免在使用Facebox时单击它们并重定向到其他页面。

可以放在<script>的{​​{1}}标记中。

有什么建议吗?

修改

好的,我在<head>中得到的结果不起作用。但在head结束工作正常。这就是我提出建议的原因。 :)

3 个答案:

答案 0 :(得分:2)

使用document.links并使用preventDefault()阻止其默认行为。

var links = document.links;
for (var i = 0, length = links.length; i < length; i++) {
    links[i].onclick = function(e) {
        e = e || window.event;
        e.preventDefault();
    }
}

如果您希望更长久地停用链接,请使用removeAttribute('href')

如果您不想使用bodyDOMContentLoaded window事件,请在结束load代码后的某处放置此代码。

您不能将其放在head元素中,并立即执行,因为document.links肯定会为空。

答案 1 :(得分:2)

将此设为头部中的第一个脚本标记:

window.onclick = function(e) {
    if(typeof $ === 'undefined') {
            e = e || window.event;
        e.preventDefault();
    }
}

这会捕获所有点击事件,如果未定义$,则取消该事件。

具有在加载DOM之前工作的优势。

答案 2 :(得分:0)

在页面中,将所有链接设为空 href 值。使用load事件分配适当的值。禁用或不可用JavaScript的用户将看到损坏的链接。