Firefox offers an easy way to circumvent the anti-right click script that I presented to you in a previous article. All one has to do is go to the “Advanced JavaScript Settings” (Tools > Options > Content > Advanced) and deselect the “Disable or replace context menus” option.

However, there is no need to panic. There is a simple solution to this problem. By stopping the propagation of the “oncontextmenu” event with the .stopPropagation() method, the context menu can be blocked even with “Disable or replace context menus” remaining unchecked:
function onContextMenu(e) { if (e && e.stopPropagation) e.stopPropagation(); document.oncontextmenu = onContextMenu;
When merging the above code into the original anti-right click script, we get the following:
<script language="JavaScript" type="text/javascript"> <!-- // Setting "onlyOnImages" to "true" will disable right-clicking only for // images var onlyOnImages = false; // Detect the browser we have to handle with var isIE5 = document.all && document.getElementById; // IE 5 or higher var isMoz = !isIE5 && document.getElementById; // Mozilla/Firefox function cancelContextMenu(e) { // Here you can add additional code that is executed when the context menu // is blocked. For instance you can use the following code to display a // message to the user: //alert("Please respect our copyright. Thank you!"); if (e && e.stopPropagation) e.stopPropagation(); return false; } /* This function is fired every time a user clicks the right mouse button to open the browser's context menu. */ function onContextMenu(e) { // Depending on the "onlyOnImages" variable the context menu is either // blocked for the complete page or only for <img> tags. if (!onlyOnImages || (isIE5 && event.srcElement.tagName == "IMG") || (IsMoz && e.target.tagName == "IMG")) { return cancelContextMenu(e); } } if (document.getElementById) { // Register event handler document.oncontextmenu = onContextMenu; } --> </script>
A sample page is available here.