).

даряСовершенство убиваетМы можем использовать следующий JavaScript для обнаружения поддержки событий:

function hasEvent(ev) {
    var elem = document.createElement('a'),
        type = 'on' + ev,
        supported = elem[type] !== undefined;
    if (!supported) {
        elem.setAttribute(type, 'return;');
        supported = typeof elem[type] === 'function';
    }
    elem = null;
    return supported;
}

Это работает примерно в единственный раз, когда мне это нужно: обнаружениеmouseenter служба поддержки;hasEvent('mouseenter') вернет false в Chrome, Firefox и т. д., как и должно быть.

Но сейчас я пытаюсь "исправить" браузеры, которые не поддерживаютfocusin а такжеfocusout Мероприятия.По данным ППКЭто в основном только Firefox. К сожалению, Chrome и Safari перечислены как имеющие «неполную» поддержку по следующей причине:

Safari и Chrome запускают эти события только с помощью addEventListener; не с традиционной регистрацией.

В целом это нормально; Я бы только использовалaddEventListener так или иначе. Этоделает означает, однако, что обнаружение поддержки черезelem.onfocusin !== undefined не сработает Я проверил это, и это правда:

<p>Do I support <a href="#">focusin</a>?</p>

<script>
var elem = document.getElementsByTagName('p')[0];

// hasEvent method defined here
function listener() {
    var response = hasEvent('focusin') ? 'Yes!' : 'No...';
    alert(response);
}

elem.addEventListener('focusin', listener, false);
</script>

Вышеуказанные оповещенияNo... в хроме !! Есть ли способ определить, поддерживает ли браузерfocusinбез использования браузера нюхает?

Ответы на вопрос(3)

Ваш ответ на вопрос