Javascript 有没有更好的方法来';假';链接的href属性?

Javascript 有没有更好的方法来';假';链接的href属性?,javascript,html,Javascript,Html,现在我使用: href="javascript:void(0)" 我的a标签 然而,我发现这很混乱,它也会在FireFox中以悬停的方式显示给用户 我正在考虑用普通的p标记替换我的链接,并在JavaScript中设置事件处理程序 澄清: 这仅适用于支持JavaScript的现代浏览器。我目前还不关心可访问性。HTML: <a href="">Foo</a> JS: var a = document.getElementsByTagName('a'); for(i=

现在我使用:

href="javascript:void(0)"
我的a标签

然而,我发现这很混乱,它也会在FireFox中以悬停的方式显示给用户

我正在考虑用普通的p标记替换我的链接,并在JavaScript中设置事件处理程序

澄清:

这仅适用于支持JavaScript的现代浏览器。我目前还不关心可访问性。

HTML

<a href="">Foo</a>

JS

var a = document.getElementsByTagName('a');
for(i=0 ; i<a.length ; i++){
    a[i].addEventListener('click', function(e) {
        if (this.href === window.location.href) {
            e.preventDefault();
        }
    });
}
var a=document.getElementsByTagName('a');

对于(i=0;i

不确定您正在尝试做什么,但您也可以使用
href=“#”
并使用不引人注目的javascript阻止单击事件继续进行。

使用

event.preventDefault()
禁用任何可能由用户单击启动的链接

anchorElement.onclick=function(e)
{
    e.preventDefault();}

听起来你刚刚回答了你自己的问题,那么键盘的可访问性呢?不是每个人都使用鼠标来导航页面。那么JS被禁用/不可用的人呢?你是在试图改变光标吗?你可以用CSS做到这一点:
cursor:pointer
听起来对你们来说很明显,但为什么要创建指向的链接呢不能用作链接?它是一个空哈希,但如果您不管理事件,它会将浏览器弹出到窗口顶部。Wiki参考:或参阅RFC 3986这是最简单的解决方案。我注意到,#现在显示在url中。我喜欢这个版本,因为它可以避免DOM中的混乱,并将逻辑保留在脚本中。您的图片让我感到害怕。当我走在黑暗的小巷时,我将练习这张脸。这是《血色港》的Jean-Claude Van Damme,他在结尾让春丽说“Mateeeeeeeeeeeeeeeeeeeeeeeeeeeeeeye!!!”iOS画外音有一个讨厌的习惯,那就是读取链接,链接的href在访问时是空的