#javascript #jquery
#javascript #jquery
Вопрос:
Я получаю эту ошибку при попытке запустить эту функцию. Если вы хотите протестировать его, вы можете посетить этот сайт здесь: http://www.apdty.com/pluton
Нажмите «Видео» вверху и наведите курсор мыши на один из эскизов. Затем щелкните знак плюс. Ошибка должна появиться в консоли разработчика вашего браузера. Предполагается, что код останавливает видео при его воспроизведении. Вы можете увидеть пример здесь: http://jsfiddle.net/ow3s692n /
function toggleVideo() {
var frames = document.getElementsByTagName("iframe").length;
var div = document.getElementById("popupVid");
for (var i = 0; i < frames; i ) {
var iframe = div.getElementsByTagName("iframe")[i].contentWindow;
iframe.postMessage('{"event":"command","func":"stopVideo","args":""}','*');
document.getElementById("mytext").value = i;
}
}
Обновление: @Pointy был корректным, используя document вместо div. Я также допустил ошибку, указав из местоположения http в местоположение https. Вам также необходимо удалить «?rel = 0» из ваших ссылок на YouTube
Комментарии:
1. Вы получаете количество фреймов во всем документе, но затем вы выполняете итерацию только по фреймам внутри него
<div>
. Их явно меньше. Вы имели в виду использоватьdocument.getElementsByTagName()
внутри цикла?2. @Pointy Ах, вы правы. изменение его с div на document исправляет ошибку, но теперь это фактически не останавливает видео…
3. Вот обновленный jsfiddle.net/3cxt07e0 что работает. Я также загрузил новый файл сайта. По-прежнему не работает.
4. Теперь все исправлено. Обновленный OP. Спасибо, что указали мне правильное направление @Pointy