的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
}
});
}
答
尝试使用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>
对我来说,这是因为jQuery是在'
'部分负荷。将它移动到''部分,但在'>之前工作正常。 – vee