Обходной путь № 1: делегирование более высокому событию В данном решении нам необходимо присоединить обработчик события к объекту
window
.
Таким образом, обработчик событий должен быть выше элемента медиа. Очевидный недо-
статок данного подхода заключается в том, что элемент сценария находится выше контента,
вследствие чего появляется риск блокировки загрузки контента (в целом, рекомендуется
добавлять все блоки сценариев в конце документа).
Тем не менее спецификация HTML5 утверждает, что события медиа должны всплы-
вать в DOM на самый верх, вплоть до объекта
window
. Следовательно, когда событие
loadedmetadata
срабатывает на объекте
window
, мы проверяем, где это событие было созда-
но (с помощью свойства
target
), и если это наш элемент, можно запускать код настройки.
Обратите внимание, что в представленном ниже примере я проверяю только
nodeName
элемента; вы можете выполнить данный код для всех элементов
audio
или проверить
больше свойств в узле DOM, чтобы удостовериться, что нашли правильный.