Хорошей практикой является поиск "неизвестных" объектов для свойств и методов, которые вы ожидаете найти.
Итак, предположим, что у есть объект события, и проверьте его, прежде чем воздействовать на него, например,
if (event.target)
{
//looks like we're an event, hide the target
var e=$(event.target);
e.hide();
}
Важно отметить, что я НЕ предлагаю вам проверять «цель», чтобы увидеть, является ли она событием: вы проверяете цель, потому что собираетесь использовать это свойство. Я имею в виду, что вместо того, чтобы пытаться выяснить, является ли объект событием, исследует объект, чтобы определить, будет ли он вести себя так, как вы ожидаете, а затем используйте это поведение. *
Код, подобный этому, должен изящно ухудшаться в браузерах с различной поддержкой или позволять вам использовать расширения, специфичные для браузера, например,
if (event.initKeyEvent)
{
//gecko 1.9+
event.initKeyEvent(...)
}