2014-05-26 5 views
0

У меня есть div, в который я вставил видео YouTube, и это отлично. Но я хотел бы иметь возможность щелкнуть где-нибудь на видео и удалить код для встраивания из DOM, поэтому div возвращается к тому, что было до того, как был вставлен код для встраивания, и видео и проигрыватель YouTube полностью исчезли.Как убить видео YouTube, нажав

Я знаю, что есть JavaScript JavaScript API, но это, кажется, просто позволяет отправлять команды, такие как остановка, пауза, воспроизведение, плеер. Я хочу полностью исключить игрока и удалить iframe из DOM, как лучший способ.

Проблема в том, что все, что я нажимаю на плеер YouTube, перехвачено игроком, поэтому я никогда не получаю клик в своем JavaScript или jQuery. Есть ли способ, которым я могу ощутить щелчок на проигрывателе YouTube в своем JavaScript или jQuery?

Благодаря

+0

Как ни странно, я не мог найти дубликат для этого. Мое предположение заключалось бы в том, чтобы покрыть игрока, если возможно, с помощью div и переслать щелчок на элементах управления игроку и обработать любой другой щелчок. Тем не менее. Я бы НЕНАВИЖУ это как пользователь. Вместо этого добавьте [X] в верхнюю часть за пределами контейнера - если вы хотите наложить, то [дубликат здесь] (http://stackoverflow.com/questions/3820325/overlay-opaque-div-over-youtube- iframe) – mplungjan

ответ

0

При загрузке плеера с помощью iframe, то вы не можете поймать события, которые происходят внутри iframe на странице из-за Same-Origin-политикаiframe ссылке на другой домен) ,

Если вы действительно хотите остановить и удалить игрока при каждом нажатии на него (нет матового, если щелчок находится на видео или на элементах управления), вы можете поместить пустой элемент div с тем же размером, что и игрок это и использовать это, чтобы поймать события. Проверьте вопрос, упомянутый mplungjan, как это сделать overlay opaque div over youtube iframe

Важное замечание: поскольку это также блокирует ссылку на youtube, а также контекстное меню, я бы предположил, что это не разрешено условиями использования.

+0

Мои мысли тоже, но я не уверен, что все браузеры будут уважать z-индекс div и OP должны будут поймать все взаимодействие над элементами управления. Вот как наложить div http://stackoverflow.com/questions/3820325/overlay-opaque-div-over-youtube-iframe – mplungjan

0

Если вы хотите захватить клики, чтобы вы могли работать с ними, поместите холст поверх плеера.

сделать разделение внутри него поставить холст и разделение игрока

canvas.style.zIndex = 2 
    box=document.getElementById (div where the player is) 
    box.zindex=1 

вам может понадобиться установить позицию абсолютной, чтобы заставить их перекрывать друг друг

теперь вы можете поместить слушатель мыши на холсте и захватить события. в Javascript вы можете передавать клики игроку, если хотите. Div.click() или использовать API.

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

Смежные вопросы