如何使用javascript和中键单击在新选项卡中打开网页

如何使用javascript和中键单击在新选项卡中打开网页,javascript,html,tabs,Javascript,Html,Tabs,我在列表项中有一个锚 <li> <a href="page"></a> <span>description</span> <span>count</span> </li> 使用javascript,只要单击列表项,窗口就会打开锚的href 我想让浏览器知道,当它中键单击时,它可以将列表项视为锚定项,并在新选项卡中打开 我环顾四周,发现大多数人认为这是不可能的,但我认为我的情况

我在列表项中有一个锚

<li>
    <a href="page"></a>
    <span>description</span>
    <span>count</span>
</li>
使用javascript,只要单击列表项,窗口就会打开锚的href

我想让浏览器知道,当它中键单击时,它可以将列表项视为锚定项,并在新选项卡中打开

我环顾四周,发现大多数人认为这是不可能的,但我认为我的情况可能会有所不同。一种方法是不明确地告诉浏览器打开一个新选项卡,而是告诉浏览器在使用鼠标中键单击时所做的事情

你觉得怎么样


编辑:更新html以获得更准确的描述。锚定不是列表中的唯一元素

您希望列表项充当链接。最简单、最可靠的方法是去掉JavaScript并应用CSS使链接填充列表项。然后,对列表项的任何单击都将首先命中链接

好吧,反对者:,我已经知道怎么做了

使用JS/jQuery,我可以确定按下了哪个按钮。使用此选项,我可以仅在按下中间按钮时将锚定上的目标值更改为空白。

使用jQuery 1.7

$('ul').on('click', 'li', function(e){
    if(e.which == 2){
        var newWindow = $(this).find('a').attr('href');
        window.open(newWindow, 'newWindow');
        e.preventDefault();
    }
});

就这样。jQuery将event.button规范化为event.button,这样您就可以可靠地检测中间点击。然后打开一个新窗口。当然,它是否会出现在新的选项卡或新的窗口中完全取决于用户的浏览器首选项。

我不理解这个问题。。。您想要默认行为吗?然后只需使用链接和0 javascript。。。也许我不明白,因为英语不是我的自然语言…谢谢,锚不是列表中唯一的元素。其中有一些描述文本,在语义上不是链接,但对于UX,我希望用户能够将其视为链接。这不是不能将所有内容包装在一个元素中的原因。可能是重复的,谢谢,我已经更新了html以获得更准确的描述。链接不是列表中的唯一元素。如何使用.click方法触发单击?FireFox的旧版本不支持.click方法。