How to generate a right-click event in all browsers

后端 未结 1 762
-上瘾入骨i
-上瘾入骨i 2020-12-18 12:32

A little context:
The app I\'m working on has a right-click context menu for certain objects on the screen. The current design as that each of these obj

相关标签:
1条回答
  • 2020-12-18 13:13

    This should get you started with generating a right click event. The key to the right click is the button parameter: button = 2.

    if (document.createEvent) {
      var rightClick = document.createEvent('MouseEvents');
      rightClick.initMouseEvent(
        'click', // type
        true,    // canBubble
        true,    // cancelable
        window,  // view - set to the window object
        1,       // detail - # of mouse clicks
        10,       // screenX - the page X coordinate
        10,       // screenY - the page Y coordinate
        10,       // clientX - the window X coordinate
        10,       // clientY - the window Y coordinate
        false,   // ctrlKey
        false,   // altKey
        false,   // shiftKey
        false,   // metaKey
        2,       // button - 1 = left, 2 = right
        null     // relatedTarget
      );
      document.dispatchEvent(rightClick);
    } else if (document.createEventObject) { // for IE
      var rightClick = document.createEventObject();
      rightClick.type = 'click';
      rightClick.cancelBubble = true;
      rightClick.detail = 1;
      rightClick.screenX = 10;
      rightClick.screenY = 10;
      rightClick.clientX = 10;
      rightClick.clientY = 10;
      rightClick.ctrlKey = false;
      rightClick.altKey = false;
      rightClick.shiftKey = false;
      rightClick.metaKey = false;
      rightClick.button = 2;
      document.fireEvent('onclick', rightClick);
    }
    

    I would suggest Googleing for 'document.createEvent' and 'document.createEventObject' for more detail on the API from the Mozilla and MSDN sites.

    Hope this helps!

    0 讨论(0)
提交回复
热议问题