gpt4 book ai didi

javascript - 中键点击事件

转载 作者:太空狗 更新时间:2023-10-29 13:19:58 25 4
gpt4 key购买 nike

我的 Chrome 扩展中有这段代码,所以我可以使用 <div href="url">作为链接。这曾经按预期工作,直到最近。 (左 - 在当前选项卡中打开,中间 - 在新选项卡中打开)。现在它只记录左键点击。

$('div.clickable-href').on('click', function(e) {
switch(e.which) {
case 1:
window.location = $(this).attr('href');
break;
case 2:
window.open($(this).attr('href'));
break;
case 3:
break;
}
});

我使用 <div href="url"><span href="url">用于链接,以便浏览器不显示状态栏。

我发现了一些类似的问题,但所有答案都建议使用 .on('mousedown', (e) => {...}) .仅当存在 mousedown 时我才需要触发此事件事件后跟 mouseup事件。
更令人沮丧的是,这曾经有效,但现在不再有效了。


编辑:
这是 Chrome 55 的问题。在 Linux 上(我首先注意到异常)Chrome 已经更新到 v55。在我的 Windows 系统上,它是 v54,并且可以通过中键单击。从 54 更新到 55 导致了同样的问题。

最佳答案

我注意到 chrome 中的#3 鼠标按钮 存在问题(未在其他浏览器上测试过)。

所以这里有一个修复方法(添加 contextmenu 到触发事件):


编辑
感谢 Matevž Fabjančičuse 的有用评论。

我确认自 Chrome 55(我在一分钟前更新到它),鼠标中键点击现在会触发新的 auxclick 事件。
所以 click 事件只能由鼠标按钮 1 触发。

注意 auxclick 是由鼠标按钮 2 和 3 触发的。

Reference here .

$('div.clickable-href').on('click auxclick contextmenu', function(e) {
e.preventDefault();
console.log(e.which);
console.log(e.type);

if(e.type=="contextmenu"){
console.log("Context menu prevented.");
return;
}

switch(e.which) {
case 1:
//window.location = $(this).attr('href');
console.log("ONE");
break;
case 2:
//window.open($(this).attr('href'));
console.log("TWO");
break;
case 3:
console.log("THREE");
break;
}
});
.clickable-href{
width:20em;
background-color:#DDD;
text-align:center;
padding:4em 0;
border-radius:8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="clickable-href">
CLICK ME - Test all 3 mouse buttons!
</div>

关于javascript - 中键点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com