我需要一个纯Javascript代码来在加载页面时禁用所有链接,避免在使用Facebox时单击它们并重定向到其他页面。
可以放在<script>
的{{1}}标记中。
有什么建议吗?
修改
好的,我在<head>
中得到的结果不起作用。但在head
结束工作正常。这就是我提出建议的原因。 :)
答案 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')
。
如果您不想使用body
或DOMContentLoaded
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的用户将看到损坏的链接。