Проверьте с помощью JS, был ли загружен эскиз YouTube - PullRequest
0 голосов
/ 20 февраля 2019

мы настроили визуальное регрессионное тестирование для нашего сайта (с BBC Wraith).Все работает хорошо, если на странице нет видео на YouTube.Если на странице есть одна встроенная страница, иногда случается, что WRAITH делает снимок страницы до загрузки миниатюр YouTube.Конечно, мы могли бы просто увеличить время ожидания для Wraith, чтобы немного подождать эти страницы, чтобы увеличить вероятность того, что миниатюра уже есть - но может быть лучшее решение.

Поэтому мы хотели быпонять, есть ли способ узнать, был ли загружен эскиз YouTube.

Из-за политики того же происхождения мы не можем получить доступ к iframe YouTube с помощью JS.

Обновление: Я пытался использовать API iFrame YouTube (https://developers.google.com/youtube/iframe_api_reference?hl=en#Events) и работал с onReady-Event. Он запускается, когда проигрыватель готов принимать вызовы API, но для этого не требуется загрузка миниатюры.

Есть ли другие идеи? (Например, проверьтеесли браузер загрузил определенный ресурс с YouTube и т. д.)

Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2019

Если я вас правильно понимаю, вам нужно знать, когда была загружена миниатюра YouTube.

Если это так, вы можете использовать следующий код, адаптированный из:

Ответ: JavaScript: знать, когда изображение полностью загружено

$().ready(function() {

  $('img#youTubeVideoThumbnail').attr('src', 'https://i.ytimg.com/vi/wtKIVArS17w/hqdefault.jpg')
    .load(function() {
      alert('Image Loaded');
    })
    .error(function() {
      alert('Error Loading Image');
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<img id="youTubeVideoThumbnail" />

В предыдущем коде обнаруживается при загрузке миниатюры, а затем отображается предупреждение javascript.

Используется миниатюра, полученная изэто видео - Соуэто .

Вы можете заменить alert() кодом, который необходимо выполнить после загрузки изображения.

...