我想知道如何使javascript中的左键单击行为与右键单击相同。我希望通过单击鼠标左键来显示上下文菜单。
问候。
最佳答案
将点击事件监听器添加到文档中
保存单击的dom树中最低的元素
以与您从点击事件收到的x和y坐标相同的方式向该元素触发事件“ rightclick”(或其调用)。
事件监听器:
document.addEventListener('click', function(e) {
console.log(e);
});
这已经为您提供了很多信息。您将获得鼠标单击的x / y坐标,更重要的是,您将获得获得点击的元素:e.originalTarget(请注意,事件因浏览器而异)。
保存元素:
document.addEventListener('click', function(e) {
var originalElement = e.srcElement || e.originalTarget;
});
并右键单击该元素:
document.addEventListener('click', function(e) {
var originalElement = e.srcElement || e.originalTarget;
if (document.createEvent) {
var ev = document.createEvent('HTMLEvents');
ev.initEvent('contextmenu', true, false);
originalElement .dispatchEvent(ev);
} else { // Internet Explorer
originalElement .fireEvent('oncontextmenu');
}
});
编辑:
它似乎尚不起作用,因此请考虑使用此方法在纯js中触发右键单击:How to generate a right-click event in all browsers
关于javascript - 如何使左键单击的行为与右键单击相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17291135/