【问题标题】:Getting Facebook video ID using jQuery使用 jQuery 获取 Facebook 视频 ID
【发布时间】:2016-05-11 16:04:17
【问题描述】:

我制作了一个脚本来获取 YouTube 和 Vimeo 的 ID,但我不确定如何从 Facebook 嵌入 URL 获取 ID。

示例嵌入:

<iframe src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FHammers.Serbia.Official%2Fvideos%2F1261009690594307%2F&show_text=0&width=560" width="560" height="315" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe>

我需要获取 ID,在这种情况下为:1261009690594307

如何使用 YouTube?我是 JS 新手,所以不确定如何复制,但要获取这个 ID。

$.each($('iframe[src*="youtube.com"]'), function() {
    var player = $('<div class="video-player">');
    var id = $(this).attr('src');
    id = id.substr(id.lastIndexOf("/")+1);
    player.attr('data-id', id);
    player.html(videoThumbYT(id));
    player.on('click', videoIframeYT);
    
    var videoContainer = $('<div class="video-container">');
    videoContainer.append(player);
    $(this).replaceWith(videoContainer);
});

【问题讨论】:

    标签: javascript jquery facebook youtube


    【解决方案1】:

    使用 Regular Expressions 最快。

    function fbvideoID(frame) {
      var myRegexp = /2F(\d+)%/g;
      var match = myRegexp.exec(frame);
      return match[1];
    }
    
    var facebookVideo = '<iframe src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FHammers.Serbia.Official%2Fvideos%2F1261009690594307%2F&show_text=0&width=560" width="560" height="315" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allowFullScreen="true"></iframe>';
    
    document.write(fbvideoID(myString)); //returns ID 1261009690594307
    

    说明

    正则表达式

    /2F(\d+)%/g
    

    选择 ID。测试一下 here!

    var match = myRegexp.exec(frame);
    

    返回两个元素的数组。文档 here.

    0: "2F1261009690594307%"
    1: "1261009690594307"
    

    0 索引总是整个表达式。 1 只是 (\d+) - 大括号。其中包含我们的 ID。

    希望我能帮到你!

    【讨论】:

    • 谢谢伙计,根据你的解决方案让它工作:)
    • 只是想让它添加 SDK,这样我就可以用更好的标记和自动播放重新加载视频,但还没有破解它,哈哈
    • @James 怎么了?最终用代码提出一个新问题并将链接发送给我。我会尽力帮助你
    • 谢谢伙计,它是stackoverflow.com/questions/37189246/… - 当你点击播放视频时我完成的 youtube 和 vimeo,但可以设置自动播放,但我认为 Facebook 不能在 iframe 上,所以需要在加载后强制点击猜....感谢您的帮助队友。希望你今晚在附近,因为今晚需要发布哈哈再次感谢
    【解决方案2】:

    这是一种方法,可以稍微改进一下。

    $.each($('iframe[src*="facebook.com/plugins/video"]'), function() {
    
        var url = decodeURIComponent($(this).attr('src'));
        var id = url.match(/\/\d+\//);
        if (id) {
            id = id.slice(1,-1);
            console.log(id);
            //do your player stuff here.
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-11-19
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 2011-10-23
      • 2015-09-22
      • 1970-01-01
      • 2015-11-16
      • 2013-06-21
      相关资源
      最近更新 更多