Disable Right Click Using MooTools 1.2
We all know that it's bad practice to disable the right click context menu, so I'll skip the explanation of why that is. Unfortunatley, however, customer request comes before anything else when you're doing their website. If your project is using MooTools 1.2, you can achieve this goal.
The MooTools 1.2
window.addEvent('domready', function() {
document.body.addEvent('contextmenu',function(e) {
e.stop();
});
});
Again, the only time I would do this is if the customer asked for it. It's good to know that it's so easy to implement, right?
![Conquering Impostor Syndrome]()
Two years ago I documented my struggles with Imposter Syndrome and the response was immense. I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions. I've even caught myself reading the post...
![JavaScript Promise API]()
While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready? Promises are becoming a big part of the JavaScript world...
![Highlighter: A MooTools Search & Highlight Plugin]()
Searching within the page is a major browser functionality, but what if we could code a search box in JavaScript that would do the same thing? I set out to do that using MooTools and ended up with a pretty decent solution.
The MooTools JavaScript Class
The...
![Pure CSS Slide Up and Slide Down]()
If I can avoid using JavaScript for element animations, I'm incredibly happy and driven to do so. They're more efficient, don't require a JavaScript framework to manage steps, and they're more elegant. One effect that is difficult to nail down with pure CSS is sliding up...
contextmenu eh?? hmmm, news to me.
ZOMG Bad practice alert!!!
Kidding, you can only argue that so far. Also, this is quite useful should you want to implement your own context menu…
dave…
whad do yo use to format source code on your blog post? (the code that puts the line #’s, copy to clipboard, e.t.c.)
thanks…
I think e.stop() is enough, because it already do preventDefault in the Mootools Core source.
@Lim Chee Aun: Good call! I’ve adjusted the code. Thank you for mentioning that.
This is also so useful when planning to add a custom context menu to your page, or a custom menu appears when you right click a certain element (a hyperlink, a button, or an image).
Thanks for sharing, David.
@Ahmed: Thanks — I have been working on a custom context menu…
@David: You’re welcome! Will you populate the custom context menu?
PS: Is it possible to work a clipboard manager (copy selection to clipboard) using MooTools?
uhg. I do not like this. Disabling my browsers features is not cool, I would be upset at any site or service that pulled this.
@Ahmed,
javascript cannot access the clipboard(which is a good thing) unless the browser has some feature that allows this(like older builds of IE). However, with the help of flash, you can do it, which is what syntaxhighlighter(in use here) does.
Quit good for prevent picture steeling ;) ….
great stuff, it’s new to me to heard about contextmenu, but anyway good job…. hope you will work more about mootools….
@weblizzer: To put it simple, a context menu is the menu that appear when you rightclick somewhere, like on Windows desktop for example, the “Refresh New-> etc..” is a contextmenu.
Why document.body and not document.documentElement (i.e. html tag)? What id body has a margin, or html has a padding set?
I don’t this will prevent displying context menu from opera…as far as I know you can’t disable context menu in opera….
@Roshan: That’s correct.
hi,
its all fine, but do you have any solution to show Custom Context Menu on right click in Opera???
if you find any solution please reply to my email , immidiately, you help will be highly appriciated, thanks
imran
This article could also assist: http://laymensterm.blogspot.com/2008/12/disable-copy-command-and-right-click.html
David,
For compatibility with IE7, shouldn’t that be $(document.body) rather than just document.body?
Rob
For reference, you should be able to disable this by overriding the
oncontextmenuevent in the javascript console. It looks like this is being added todocument.body, soThanks. This post is very helpful to me. I have a question. I want to display a classic “lightbox” popup when the user do a click over an “” element and I want to disable the context menu in the “” elements to prevent the posibility of open a new window or new tab . But in Firefox and Opera I still can open a new tab with a click of the scroll button in the mouse. You do know some way to disable the default associated to a click with the scroll button?
Thanks, and sorry for my poor english.
sorry, I refer to the “a” elements, but in the comments was taken like code.