2015-04-03 59 views
1

这很奇怪。我正在使用youtube JavaScript API在我的网站上嵌入播放列表。除了我最近检查我的工人正在发生的事情之外,这将会很好。看起来API决定将它的消息发送给其中的一个。Youtube API使用不相关的工作人员?

这里是我的工作人员收到的数据。

bubbles: falsecancelBubble: falsecancelable: falsecurrentTarget: Windowdata: "{"event":"infoDelivery","info":{"currentTime":109.455757,"videoBytesLoaded":1,"videoLoadedFraction":1},"id":1}"defaultPrevented: falseeventPhase: 0lastEventId: ""origin: "https://www.youtube.com"path: Array[1]ports: Array[0]returnValue: truesource: WindowsrcElement: Windowtarget: WindowtimeStamp: 1428083437641type: "message"__proto__: MessageEvent 

而且正如我在另一个问题的Youtube API见过这是否

www-embed-player.js:167 GET chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js net::ERR_FAILED 

我没想到谷歌创造这样错误的API。有没有办法禁用这些东西?

回答

0

快速实验提供了一个解决方案。将所有的youtube代码移动到一个单独的html并嵌入到我的父页面中。

<iframe id="youtubePlayer" src="mediaPlayer.html"> 

您仍然可以从您的主页访问YouTube API取得这样的

var mediaPlater = document.getElementById('youtubeFrame').contentWindow.player; 
    // i.e. skip to next video 
    mediaPlayer.nextVideo(); 

这解决了完全意想不到的工人活动。这个控制台错误仍然存​​在,但在阅读后,这是一个不可修复的问题,它不会打扰我。

www-embed-player.js:167 GET chrome-extension:// 

内容我mediaPlayer.html的

<div id="ytplayer" class="musicPlayer"></div> 
<script> 
var player = null; 
// Load the IFrame Player API code asynchronously. 
var tag = document.createElement('script'); 
tag.src = 'https://www.youtube.com/player_api'; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

// Replace the 'ytplayer' element with an <iframe> and 
// YouTube player after the API code downloads. 
function onYouTubePlayerAPIReady() { 
    player = new YT.Player('ytplayer', { 
     height: '180', 
     width: '280', 
     playerVars: { 
      autoplay: 1, 
      controls: 0, 
      listType: 'playlist', 
      list: 'RD4-OlYiH1DXI' 
     }, 
     events: { 
      'onReady': onPlayerReady, 
      'onError': function() { 
       setTimeout(function() { 
        player.nextVideo(); 
       }, 200); 
      } 
     } 
    }); 
} 


function onPlayerReady() { 
    // fixes firefox ignoring first onerror if the first video is faulty 
    player.nextVideo(); 
} 
</script>