我想知道如何使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/

10-12 00:31
查看更多