Мне нужно знать, какая клавиша мыши нажата на каждое событие mousemove, и я пытаюсь использовать это:
getMouseCode: function(e) { e = e || window.event; if (!e.which && e.button) { if (e.button & 1) e.which = 1; else if (e.button & 4) e.which = 2; else if (e.button & 2) e.which = 3; }; return e.which; },
Но это работает только в хром и IE7-8. Отладчик IE9 всегда говорит e.button == 0 и e.which == 1. После некоторой отладки я понял, что window.event для IE9 содержит правильное значение, поэтому я поменялся
e = window.event || e;
Это также делает трюк для Safari и Air, но Firefox имеет window.event undefined, а Opera имеет те же самые неправильные значения как в аргументе обратного вызова, так и в объектах window.event.