2

我想知道如何使左键单击在 javascript 中表现为右键单击。我希望通过左键单击出现上下文菜单。

问候。

4

2 回答 2

2
  1. 向文档添加点击事件监听器
  2. 保存被点击的 dom-tree 中最低的元素
  3. 使用与从 click 事件中收到的相同 x 和 y 坐标向该元素触发事件“右键单击”(或任何其调用)。

事件监听器:

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

于 2013-06-25T07:07:09.977 回答
0

尝试这个

    $(document).contextmenu(function (event) {
        $(event.target).click();
        event.preventDefault();
    })
于 2013-06-25T07:10:43.067 回答