Как использовать API YouTube iFrame в Chrome и Firefox? - PullRequest
10 голосов
/ 10 февраля 2011

У меня есть видео YouTube , встроенное в мой сайт с использованием iFrame .Я хочу использовать API для приостановки видео, но в Chrome я получаю ошибку:

Unsafe JavaScript attempt to access frame with URL http://subdomain.example.com/ from frame with URL http://www.youtube.com/embed/KmtzQCSh6xk?enablejsapi=1&origin=http://subdomain.example.com. Domains, protocols and ports must match.

В Firefox (3.6) я получаю эту ошибку:

Permission denied for <http://www.youtube.com> to call method Location.toString on <http://subdomain.example.com>.

Я пытался вставить iFrame в себя или добавить его с помощью API.В любом случае, игрок входит, но я не контролирую его через API.

Вот соответствующая часть моего кода:

<div id="player"></div>

<script type="text/javascript">
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;
function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
        height: '433',
        width: '731',
        videoId: 'KmtzQCSh6xk'
      });
}

$("#pause_button").click(function(){
  alert("Pausing " + player);//is undefined :(
  player.pauseVideo();
});

</script>

Как получить браузеры, позволяющие iFrame YouTubeполучить доступ к основному фрейму моей страницы?

Спасибо!

1 Ответ

6 голосов
/ 03 апреля 2011
  1. Игнорировать эти предупреждения.Плеер все равно должен нормально работать.

  2. Используйте недавно представленный JavaScript Player API для встраивания iframe .

...