Javascript 直接从键盘触发浏览器HTML元素上的左键单击事件

Javascript 直接从键盘触发浏览器HTML元素上的左键单击事件,javascript,html,keyboard,mouse,Javascript,Html,Keyboard,Mouse,我希望直接从键盘打开我用鼠标站立的链接(即鼠标光标所在的链接): 我只需点击鼠标左键打开光标上方的链接,我只需点击一些键盘组合,鼠标光标所在的位置就会直接触发单击事件 我找不到办法,也找不到办法 我的意思不是用Tab键关注元素,然后按CTRL+Enter,或者 想法是在整个文档上附加一个事件侦听器,用于鼠标移动并捕获该元素的目标。这样,您就可以知道鼠标悬停在哪个元素上,然后就可以dispatchaMouseEvent 请参见下面的示例(按G模拟单击): (CSS仅用于美学) let lastM

我希望直接从键盘打开我用鼠标站立的链接(即鼠标光标所在的链接):

我只需点击鼠标左键打开光标上方的链接,我只需点击一些键盘组合,鼠标光标所在的位置就会直接触发单击事件

我找不到办法,也找不到办法

我的意思不是用Tab键关注元素,然后按CTRL+Enter,或者


想法是在整个文档上附加一个事件侦听器,用于鼠标移动并捕获该元素的目标。这样,您就可以知道鼠标悬停在哪个元素上,然后就可以
dispatch
a
MouseEvent

请参见下面的示例(按
G
模拟单击):

(CSS仅用于美学)

let lastMouseElement;
让最后的老鼠发泄;
document.addEventListener('mousemove',event=>{
if(event.target){
LastMouseeEvent=事件;
lastMouseElement=event.target;
}
});
document.addEventListener('keyup',event=>{
if(event.key.toLowerCase()=='g'){
如果(lastMouseElement&&lastMouseEvent){
log(“模拟单击”);
lastMouseElement.dispatchEvent(新建MouseEvent('click'){
clientX:lastMouseEvent.clientX,
clientY:lastMouseEvent.clientY,
screenX:LastMouseeEvent.screenX,
screenY:LastMouseeEvent.screenY,
}));
}
}
});
Array.from(document.querySelectorAll('.container*').forEach(element=>{
元素。addEventListener('单击',()=>{
元素.classList.add('flash');
setTimeout(()=>element.classList.remove('flash'),1000);
});
});
.container{
高度:100vh;
宽度:100vw;
背景色:淡紫色;
位置:绝对位置;
排名:0;
左:0;
显示器:flex;
}
.左,.右{
弹性:1;
边缘:0.5em;
填充:0.5em;
背景颜色:桃花;
显示器:flex;
弯曲方向:立柱;
}
.顶部,.底部{
弹性:1;
边缘:0.5em;
填充:0.5em;
背景色:木瓜鞭;
显示器:flex;
证明内容:中心;
对齐项目:居中;
字体系列:无衬线;
字号:1.618em;
}
.闪光{
过渡:所有200ms;
背景色:白色;
}

A.
B
C
D

您可以使用以下JavaScript代码准确地实现您想要的内容,而无需修改HTML或CSS

函数listenToShortcut(e){
//改变你想要的快捷方式
如果(e.ctrlKey&&e.shiftKey&&e.keyCode==83){
e、 target.click();
}
}
var links=document.querySelectorAll('a');
Array.prototype.forEach.call(链接,函数(链接){
link.setAttribute('tabindex','0');
link.style.outline='none';
link.addEventListener('mouseenter',函数(me){
link.focus();
link.addEventListener('keydown',ListentShortcut);
});
link.addEventListener('mouseleave',function(){
link.removeEventListener('keydown',listenToShortcut);
});

});我对它的内容感到困惑,所以您正在尝试这样做。您是否在询问如何监听按键并检查多个键/快捷键,然后模拟鼠标单击特定元素?如果是,请提供您正在使用的相关源代码,并解释您的尝试。谢谢。我试着编辑以更好地解释。
document.querySelector('#myElement').click()