Javascript Youtube iframe api检查视频是否存在

Javascript Youtube iframe api检查视频是否存在,javascript,jquery,youtube,youtube-api,Javascript,Jquery,Youtube,Youtube Api,我正在处理一个简单的页面,该页面有一个文本输入,用户可以在其中添加他们想要插入到页面中的youtube视频的id,然后我调用youtube的iframe api来加载视频。但是,如果用户添加了一个不存在的id,我会得到一个黑屏 我希望有人知道在加载视频之前检查视频是否存在的方法 这是我的代码: $(document).ready(function() { $('#loadVid').click(function() { var player; var urlVid = $

我正在处理一个简单的页面,该页面有一个文本输入,用户可以在其中添加他们想要插入到页面中的youtube视频的id,然后我调用youtube的iframe api来加载视频。但是,如果用户添加了一个不存在的id,我会得到一个黑屏

我希望有人知道在加载视频之前检查视频是否存在的方法

这是我的代码:

$(document).ready(function() {
  $('#loadVid').click(function() {
     var player;
     var urlVid = $('#urlVid').val(); //GET THE VIDEO CODE FROM THE TEXT INPUT

     player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: urlVid,
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
     });
  });
});
根据法律规定,律师应向您提供此类信息

100–未找到请求的视频。此错误发生在 视频因任何原因被删除或被标记为私人

将OneError事件处理程序添加到events对象

events: {
  'onReady': onPlayerReady,
  'onStateChange': onPlayerStateChange,
  'onError': function(errEvent) {
      var errCode = errEvent.data;
      if(errCode == 100) {
          alert('Video Not Found');
      }
  }
}
根据法律规定,律师应向您提供此类信息

100–未找到请求的视频。此错误发生在 视频因任何原因被删除或被标记为私人

将OneError事件处理程序添加到events对象

events: {
  'onReady': onPlayerReady,
  'onStateChange': onPlayerStateChange,
  'onError': function(errEvent) {
      var errCode = errEvent.data;
      if(errCode == 100) {
          alert('Video Not Found');
      }
  }
}

在打开播放器之前,只需触发对URL的测试Ajax请求。如果Youtube页面视频不存在,它将返回一个404头,我刚刚用一个不存在的视频URL测试了这个头


如果使用$.ajax方法,则可以在成功回调中插入播放器加载函数,并在错误回调中触发错误警报,如果响应头为4xx或5xx,则应调用该函数。只需在打开播放器之前触发对URL的测试ajax请求即可。如果Youtube页面视频不存在,它将返回一个404头,我刚刚用一个不存在的视频URL测试了这个头

如果使用$.ajax方法,则可以在成功回调中插入播放器加载函数,并在错误回调中触发错误警报,如果响应头为4xx或5xx,则应调用该警报

此处$videoId包含yuotube url的视频id

此处$videoId包含yuotube url的视频id


嘿,谢谢你的回答!我已经按照您的建议和文档所示,将“onError”添加到事件中,但它仍然会加载一个黑屏,并且不会调用警报。这是我的演示页面:嘿,谢谢你的回答!我已经按照您的建议和文档所示,将“onError”添加到事件中,但它仍然会加载一个黑屏,并且不会调用警报。这是我的演示页面: