Ответ 1
Обновленный ответ:
Да, вы можете определить это. Создайте элемент, послушайте событие и измените атрибут элемента. В моих тестах вам даже не нужно добавлять элемент в дерево DOM, что делает это приятным обнаружением функций.
Пример:
function isDOMAttrModifiedSupported() {
var p, flag;
flag = false;
p = document.createElement('p');
if (p.addEventListener) {
p.addEventListener('DOMAttrModified', callback, false);
}
else if (p.attachEvent) {
p.attachEvent('onDOMAttrModified', callback);
}
else {
// Assume not
return false;
}
p.setAttribute('id', 'target');
return flag;
function callback() {
flag = true;
}
}
Firefox запускает обратный вызов во всех вышеперечисленных модификациях; Chrome ни на одном из них.
Оригинальный ответ:
Вы можете указать, поддерживаются ли какие-либо события, как показано на этой удобной странице. Я не знаю, можете ли вы протестировать специально для этого, но если вы можете, этот код может вас заинтересовать.
Обновить: я сбрасывал Kangax-код в JSBin и пробовал, не похоже, что этот метод обнюхивания работает для этого события (если у меня неправильно написано имя или что-то, Firefox показывает "false" ). Но моя техника выше.