右键单击或shift键单击时执行HTML链接javascript(在新窗口/选项卡中打开)

右键单击或shift键单击时执行HTML链接javascript(在新窗口/选项卡中打开),javascript,html,dom,right-click,new-window,Javascript,Html,Dom,Right Click,New Window,在新窗口/选项卡中打开基于JavaScript的链接 我有一个链接 简单的答案是,onclick!=右击 为快速和肮脏的演示 函数leftClick(){ 警报(“点击”); } 函数右键单击(){ 警报(“右键单击”); } 函数mouseDown(){ 警惕(“鼠标按下”); } 函数mouseUp(){ 警惕(“鼠标向上”); } 可以说,上下文菜单也不是右键单击。。。您可以很好地从其他输入触发contextmenu(某些键盘有contextmenu键)。右键单击将是mouse

在新窗口/选项卡中打开基于JavaScript的链接

我有一个链接


简单的答案是,onclick!=右击

为快速和肮脏的演示


函数leftClick(){
警报(“点击”);
}
函数右键单击(){
警报(“右键单击”);
}
函数mouseDown(){
警惕(“鼠标按下”);
}
函数mouseUp(){
警惕(“鼠标向上”);
}





可以说,上下文菜单也不是右键单击。。。您可以很好地从其他输入触发contextmenu(某些键盘有contextmenu键)。右键单击将是mousedown=>e.buttons===2+mouseup=>e.buttons===2@Kaiido,你是对的,我试图保持它的简单性,也许我过于简化了。真正的问题是,你的代码本身不会跟踪页面打开,如果用户多次打开上下文菜单,而从未单击“在新选项卡/窗口中打开”,你会追踪到假阳性。(与mouseup相同,+如果不检查mousedown是否也在同一个元素上进行,您还将跟踪错误的单击)是的,我们对
trackClick()
一无所知,它可能试图跟踪页面上单击的元素以引起导航事件,不是目标页面加载。在这种情况下,将
href
直接设置为正确的值将是正确的解决方案。