【问题标题】:Starting a vimeo video at a specific start time with fancybox使用 fancybox 在特定开始时间开始播放 vimeo 视频
【发布时间】:2015-02-18 18:01:52
【问题描述】:

通过将#t=1m15s 添加到视频网址,我可以在特定起点开始播放 vimeo 视频。例如: https://vimeo.com/channels/staffpicks/119293996#t=1m15s

但是当我使用 fancybox 媒体助手时,它似乎会从 url 中删除 #t=1m15s 并且不会从所需的时间开始。

有谁知道我可以使用fancybox在所需的开始时间开始播放视频吗?

更新:

下面是我正在使用的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" type="text/css" media="screen" />
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/helpers/jquery.fancybox-media.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $(".fancybox").fancybox();
            $('.fancybox-media').fancybox({
                openEffect  : 'none',
                closeEffect : 'none',
                helpers : {
                    media : {}
                }
            });
        });
    </script>

<a href="https://vimeo.com/channels/staffpicks/119293996#t=1m15s" class="fancybox-media">test</a>

这是一个 jsfidlle:http://jsfiddle.net/8z3ueL23/

【问题讨论】:

  • @Devpaq 提供 JSFiddle
  • @Moogs,一个 jsFiddle 会很棒,然而,一个 jsFiddle 确实否定了将代码包含在一个完全独立的操作。
  • 您是否尝试过将# 的URL 编码为%23
  • 我用我的代码和 jsfiddle 更新了问题(对不起,我是新手)
  • 编码似乎没有帮助。看起来fancybox重写了iframe url并将其删除

标签: jquery fancybox fancybox-2 vimeo


【解决方案1】:

查看at this line in jquery.fancybox-media.js,正则表达式未处理散列。哈希需要被剥离并附加到播放器 url。

我建议提交一个错误。

【讨论】:

  • 谢谢!我会提交一个错误,看看他们是否纠正它。
【解决方案2】:

虽然您可以提交错误,但您始终可以使用这种格式将其他参数传递给 vimeo

jQuery(document).ready(function ($) {
    $(".fancybox-media").fancybox({
        helpers : {
            media : true
        },
        vimeo : {
            "t" : "1m15s"
        }
    });
}); // ready

问题是使用&amp; 符号将参数附加到URI,但是vimeo 也将支持&amp;#t=1m15s 格式: player.vimeo.com/video/{video_id}?autoplay=1&#t=1m15s

因此,您可以尝试传递 hash 如下:

vimeo : {
    "#t" : "1m15s"
}

问题在于,fancybox 媒体助手会对 hash 进行编码并产生类似:

player.vimeo.com/video/{video_id}?autoplay=1&%23t=1m15s

...不支持。

作为(n)(丑陋的)解决方法,您可以在 afterLoad 回调中添加(未编码的)hash time 参数,如

afterLoad : function () {
    var _src = $(".fancybox-iframe").attr("src") + "&#t=1m15s";
    $(".fancybox-iframe").attr("src", _src);
}

注意我们还需要加载媒体助手js文件

【讨论】:

    猜你喜欢
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2022-07-22
    • 2022-12-14
    • 2014-09-10
    相关资源
    最近更新 更多