Если я загружаю контент, содержащий элемент <video>, используя AJAX, когда яваскрипт может адресовать этот элемент? - PullRequest
0 голосов
/ 08 сентября 2011

Я использую настройки из Представления HTML5 для отображения элемента <video> с пользовательскими элементами управления.(См. Пример на http://introducinghtml5.com/examples/ch04/custom-controls.html).

Я успешно использовал его в прошлом.Однако на этот раз разница в том, что я включаю элемент <video> в фрагмент HTML, который загружается AJAX.Элемент загружается, но javascript, который применяет пользовательские элементы управления, не работает.Запись видео переменной (которая определяется как "var video = document.getElementsByTagName('video')[0]") возвращает undefined.

Я думаю, что, поскольку <video> не присутствует при начальной загрузке страницы, эта переменная всегда будет неопределенной.Но есть ли другой способ выбрать его так, чтобы моя видео переменная была определена?

1 Ответ

1 голос
/ 08 сентября 2011

Вам нужно переместить код, которому требуется доступ к элементу video, внутрь полного или успешного обратного вызова запроса ajax.

var video
$(selector).load("somepage.html",function(){
  video = document.getElementsByTagName('video')[0];
  video.doSomething();
});
// video will still be undefined here until after
// the complete callback above is ran.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...