jquery - 动态嵌入 youtube 视频

标签 jquery html youtube

<分区>

我想在我的网页中添加动态 YouTube 视频嵌入功能,即只要用户在文本框中输入完 YouTube 网址,视频就会自动嵌入到输入框下方,当然前提是网址有效。

我认为这可以用 jquery 来完成,我对此一无所知。所以请相应地帮助我。 非常感谢任何详尽的帮助。

最佳答案

1。我们必须知道停止输入后的触发事件

How to trigger an event in input text after I stop typing/writing?

var delay = (function(){
  var timer = 0;
  return function(callback, ms){
  clearTimeout (timer);
  timer = setTimeout(callback, ms);
 };
})();

$('input').keyup(function() {
  delay(function(){
    // Here check if video exists
    // if video exist show it 
  }, 1000 );
});

https://stackoverflow.com/users/2269004/ata-ul-mustafa 回答:

2。我们必须知道 youtube 视频是否存在

How do I check if a video exists on YouTube, in client side

$.getJSON(' http://gdata.youtube.com/feeds/api/videos/ '+videoID+'?v=2&alt=jsonc',function(data,status,xhr){ 警报(数据。数据。标题); }).error(function() { alert("error"); });

https://stackoverflow.com/users/3748701/innomanik 回答

3。如果视频存在,则显示它(在 iframe 中):

<iframe id="myIframe" width="300" height="200"></iframe>

设置使用jQuery动态设置iframe的src属性的内容:

 var url = "https://www.youtube.com/embed/" + videoID;
 $('#myIframe').attr('src', url)

更新(v3)

因此您需要一个api key。如何获得它你可以阅读here .并阅读 this关于安全。

var delay = (function() {
  var timer = 0;
  return function(callback, ms) {
    clearTimeout(timer);
    timer = setTimeout(callback, ms);
  };
})();

$('#youtubeId').keyup(function() {
  delay(function() {
    var videoID = $('#youtubeId').val();
    var videos = "https://www.googleapis.com/youtube/v3/videos";
    var apiKey = "AIzaSyAzYHm1iwMocB9pW2uZrz_6Sqte5t_bXGo"; // Insert here your api key
    var fieldsTitle = "fields=items(snippet(title))";
    var fieldsEmpty = "";
    var part = "part=snippet";

    function getUrl(fields) {
      var url = videos + "?" + "key=" + apiKey + "&" + "id=" + videoID + "&" + fields + "&" + part;
      return url;
    }

    $.get(getUrl(fieldsEmpty), function(response) {
      var status = response.pageInfo.totalResults;
      var title;
      if (status) {
        $.get(getUrl(fieldsTitle), function(response) {
          title = response.items[0].snippet.title;
          $('#info').text(title);
          var url = "https://www.youtube.com/embed/" + videoID;
          $('#myIframe').attr('src', url)
        })
      } else {
        title = "Video doesn't exist";
        $('#info').text(title);
        $('#myIframe').attr('src', "");
      }
    });
  }, 1000);
});

演示:https://embed.plnkr.co/ixAFtU/

关于jquery - 动态嵌入 youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452134/

相关文章:

javascript - Youtube:在一页中添加两个嵌入视频

javascript - Jquery 单选框和文本框

javascript - 向文本框添加默认值

JavaScript 并获取单选按钮的值

html - YouTube 电影下载器如何工作? - YouTube

youtube - 使用简单访问 API(API key )在我的 youtube 帐户中上传视频时出现错误 "401 Unauthorized"

jquery - 基于 JQuery 验证更改 CSS 类

javascript - 使用 jQuery 修改 html 属性会产生意外结果

html - 更改自动填充输入字段的字体颜色

php - 如何使用 php 从多行表单更新 mysql 数据库