Hi.
I didn't realise that the Event.button and Event.which values were
different 'tween IE and FF.
<html>
<head>
<script type="text/javascript"
src="/global/javascript/prototype/prototype.js"></script>
<script type="text/javascript">
function clicking(e)
{
alert
(
'You clicked with your ' +
(Event.isLeftClick(e) ? 'Left' : '') +
(Event.isRightClick(e) ? 'Right' : '') +
(Event.isMiddleClick(e) ? 'Middle' : '') +
'. Event.button which was ' + e.button +
' and Event.which was ' + e.which
);
}
function extendEvent()
{
Object.extend
(
Event,
{
WHICH_LEFT: (navigator.appVersion.match(/\bMSIE\b/)) ? 1 : 1,
WHICH_RIGHT: (navigator.appVersion.match(/\bMSIE\b/)) ? 1 : 3,
WHICH_MIDDLE: (navigator.appVersion.match(/\bMSIE\b/)) ? 1 : 2,
MOUSE_LEFT: (navigator.appVersion.match(/\bMSIE\b/)) ? 1 : 0,
MOUSE_RIGHT: (navigator.appVersion.match(/\bMSIE\b/)) ? 2 : 2,
MOUSE_MIDDLE: (navigator.appVersion.match(/\bMSIE\b/)) ? 4 : 1,
isLeftClick: function(event)
{
return (((event.which) && (event.which == Event.WHICH_LEFT)) ||
((event.button) && (event.button == Event.MOUSE_LEFT)));
},
isRightClick: function(event)
{
return (((event.which) && (event.which == Event.WHICH_RIGHT)) ||
((event.button) && (event.button == Event.MOUSE_RIGHT)));
},
isMiddleClick: function(event)
{
return (((event.which) && (event.which == Event.WHICH_MIDDLE)) ||
((event.button) && (event.button == Event.MOUSE_MIDDLE)));
}
}
);
}
</script>
<title>Testing clicking</title>
</head>
<body>
<span id="clicker">Left, Right or Middle click me!</span>
<script type="text/javascript">
Event.observe(document.body, 'mousedown', clicking);
Event.observe(window, 'load', extendEvent);
</script>
</body>
</html>
This is sort of working in IE and FF. In IE I don't get the context
menu but I do in FF (IE7 and FF2.0.0.3)
I think that the middle and right button detection should be added to
Prototype. The current Left button detection is flawed according to my
tests as Event.button == 0 for Left.
I hope this makes some sense.
Richard.
On 23/04/07, Walter Lee Davis <[EMAIL PROTECTED]> wrote:
>
> And this fails in Safari, with a work-around posted on Trac of "just
> don't use Event.Observe..." which is icky.
>
> Click it is...
>
> Walter
>
> On Apr 23, 2007, at 11:54 AM, Walter Lee Davis wrote:
>
> > Maybe I'll just
> > try using a double-click instead...
>
>
> >
>
--
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---