What is oncontextmenu event in JavaScript?

The oncontextmenu event in JavaScript triggers when a user right-clicks on an element, causing the context menu to appear. This event allows you to handle right-click interactions and can be used to customize or prevent the default context menu behavior.

Syntax

element.oncontextmenu = function() {
    // Handle right-click
};

// Or using addEventListener
element.addEventListener('contextmenu', function(event) {
    // Handle right-click
});

Example: Basic Context Menu Event

Here's how to handle the oncontextmenu event when a user right-clicks on an element:

<html>
   <head>
      <script>
         function sayHello() {
            alert("You right clicked here.");
         }
      </script>
   </head>
   <body>
      <p oncontextmenu="sayHello()">Right click on this text</p>
   </body>
</html>

Example: Preventing Default Context Menu

You can prevent the default browser context menu from appearing by calling preventDefault():

<html>
   <head>
      <script>
         function handleRightClick(event) {
            event.preventDefault(); // Prevent default context menu
            alert("Custom right-click action!");
            return false;
         }
      </script>
   </head>
   <body>
      <div oncontextmenu="return handleRightClick(event)" 
           style="width:200px; height:100px; background-color:#f0f0f0; padding:20px;">
         Right-click me - no context menu will appear
      </div>
   </body>
</html>

Example: Using addEventListener

A more modern approach using addEventListener method:

<html>
   <head>
      <script>
         function setupContextMenu() {
            const element = document.getElementById('myElement');
            
            element.addEventListener('contextmenu', function(event) {
               console.log('Right-clicked at coordinates:', event.clientX, event.clientY);
               alert('Context menu event triggered!');
            });
         }
      </script>
   </head>
   <body onload="setupContextMenu()">
      <button id="myElement">Right-click this button</button>
   </body>
</html>

Event Object Properties

The context menu event provides useful information about the right-click action:

<html>
   <head>
      <script>
         function showEventInfo(event) {
            const info = `
               X coordinate: ${event.clientX}
               Y coordinate: ${event.clientY}
               Target element: ${event.target.tagName}
            `;
            alert(info);
         }
      </script>
   </head>
   <body>
      <p oncontextmenu="showEventInfo(event)">Right-click to see event details</p>
   </body>
</html>

Common Use Cases

  • Custom Context Menus: Create application-specific menus instead of browser defaults
  • Preventing Context Menu: Disable right-click in games or protected content areas
  • Context-Sensitive Actions: Show different options based on the clicked element
  • Analytics: Track user interaction patterns with right-click events

Browser Compatibility

The oncontextmenu event is supported in all modern browsers including Chrome, Firefox, Safari, and Edge. It's been part of the DOM specification since early versions.

Conclusion

The oncontextmenu event provides control over right-click interactions, allowing you to create custom context menus or prevent the default browser menu. Use preventDefault() to disable the default behavior when needed.

Updated on: 2026-03-15T23:18:59+05:30

535 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements