的YouTube iFrame播放器API未能就DOMWindow

问题描述:

执行的postMessage

我试图到YouTube加载到使用YouTube iFrame Player API我的网页,并获得以下错误而载入:的YouTube iFrame播放器API未能就DOMWindow

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('https://developer-sandbox.com'). 

都起源和目标是https,有很少SO发布通过保持原始&目标网址为https解决问题。在这种情况下,两者是相同的。

以下是JS代码我用动态加载播放器:

showVideoPreview: function(youtube_id){ 
     var meThis = this; 
     var player = new YT.Player('shoppable-video-container', { 
      height : '315', 
      width : '560', 
      videoId : youtube_id, 
      events : { 
       'onReady'  : meThis.onPlayerReady, 
       'onStateChange' : meThis.onPlayerStateChange 
      } 
     }); 
    } 

youtube iframe api video loading error view

+0

对我来说,这是因为jQuery是在'

'部分负荷。将它移动到''部分,但在'>之前工作正常。 – vee

尝试使用loadVideoById

这个函数加载并播放指定的视频。

  • 所需videoId参数指定要播放的视频的YouTube视频ID。在YouTube数据API中,video资源的id属性指定了该ID。
  • 可选startSeconds参数接受浮点数/整数。如果指定,则视频将从最近的关键帧开始到指定的时间。
  • 可选endSeconds参数接受浮点数/整数。如果指定,则视频将在指定的时间停止播放。
  • 可选suggestedQuality参数指定建议的视频播放质量。有关播放质量的更多信息,请参阅setPlaybackQuality函数的定义。

下面是一个片段,以帮助您

JS

function searchVideo(){ 
var vID = document.getElementById("vidID").value 
player.loadVideoById(vID, 0, "default"); 

} 

HTML

Search by Video ID: <input type="text" id="vidID" name="vidID"><button onclick="searchVideo()">Search</button>