YouTube iFrame Player API无法在DOMWindow上执行postMessage

时间:2016-08-05 11:56:03

标签: javascript iframe youtube youtube-api youtube-iframe-api

我正在尝试使用 YouTube iFrame Player API 将youtube加载到我的网页中,并在加载时收到以下错误:

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

1 个答案:

答案 0 :(得分:0)

尝试使用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>