views:

408

answers:

2

Is there a way to detect if the user is holding down the shift key (or other modifier keys) when executing a javascript bookmarklet?

In my tests of Safari 3.1 and Firefox 3, window.event is always undefined.

+10  A: 

If you're looking for a way to detect the mouse position while the bookmarklet is being physically clicked, no, there is no way. Since the bookmarklet is positioned outside of any page (this area is generally called the browser "chrome" - which is confusing since there's now a browser with that name) it's not possible to detect JavaScript-related events there.

That being said, if you created this as a Firefox extension then you would have access to event information, JavaScript, and keyboard modifiers. But that doesn't appear to be what you're looking for.

John Resig
A: 

window.event is an IE only. Event objects are passed to an event listener as an argument in firefox and safari. So you can tell in IE, but not in any other popular browser.