Сообщение от Hapson
|
функция должна удостовериться, что ей передали действительно DOM элемент, к которому применим click или submit
|
проверяй инстанс EventTarget
function isEventTarget(obj) {
return Object(obj) === obj && obj instanceof EventTarget;
}
на этом бы и остановились, если бы не IE, даже в 11 нет EventTarget, поэтому перечислим конструкторы объектов, имеющих события
//IE8+
function isEventTarget(obj) {
return Object(obj) === obj && [
obj instanceof (window.EventTarget || function () {}),
obj instanceof (window.HTMLElement || window.Element),
obj instanceof HTMLDocument,
obj instanceof Window,
obj instanceof XMLHttpRequest
].indexOf(true) != -1;
}
ну и по желанию можно дописать всякие Comment, Text и др., чтобы сравнять результаты во всех браузерах