【问题标题】:How do I dynamically add &autoplay=1 to youtube embed codes?如何将 &autoplay=1 动态添加到 youtube 嵌入代码?
【发布时间】:2011-09-02 22:45:30
【问题描述】:

这是我网站上 youtube 嵌入代码的示例:

<object width="525" height="320"><param name="wmode" value="opaque">
    <param name="movie" value="http://www.youtube.com/v/yciTqWafKPU?version=3">
    <param name="allowFullScreen" value="true">
    <param name="allowscriptaccess" value="always">
    <embed src="http://www.youtube.com/v/yciTqWafKPU?version=3" type="application/x-shockwave-flash" width="525" height="320" allowscriptaccess="always" allowfullscreen="true" wmode="opaque">
</object>

我认为我需要将 &amp;autoplay=1 添加到此:&lt;param name="movie" value="http://www.youtube.com/v/yciTqWafKPU?version=3&amp;autoplay=1"&gt; 和此:&lt;embed src="http://www.youtube.com/v/yciTqWafKPU?version=3&amp;autoplay=1" type="application/x-shockwave-flash" width="525" height="320" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"&gt;

我需要使用 JQuery 动态地执行此操作。我该怎么做?

【问题讨论】:

    标签: javascript jquery dynamic youtube autoplay


    【解决方案1】:

    如何自动播放 youtube 链接?

    1) 使用代码,只需将 url 更改为 http://www.youtube.com/v/?version=3&autoplay=1

    <object width="525" height="320"><param name="wmode" value="opaque">
        <param name="movie" value="http://www.youtube.com/v/yciTqWafKPU?version=3">
        <param name="allowFullScreen" value="true">
        <param name="allowscriptaccess" value="always">
        <embed src="http://www.youtube.com/v/yciTqWafKPU?version=3" type="application/x-shockwave-flash" width="525" height="320" allowscriptaccess="always" allowfullscreen="true" wmode="opaque">
    </object>
    

    2) 去掉 &autoplay=0 即可手动点击播放!

    【讨论】:

      【解决方案2】:

      要通过 JavaScript 播放 YouTube 电影,您最好使用 JavaScript Player API:

      http://code.google.com/intl/nl/apis/youtube/js_api_reference.html

      (是的,我知道这不是 OP 问题的确切答案)。

      【讨论】:

        【解决方案3】:

        如果没有太大的困难,我会想到......

        $('param[name="movie"]').val(function(i, oldVal) {
            return oldVal + (oldVal.indexOf('?') ? '&autoplay=1' : '?autoplay=1');
        });
        $('embed').prop('src', function(i, oldSrc) {
            return oldSrc + (oldSrc.indexOf('?') ? '&autoplay=1' : '?autoplay=1');
        }
        

        您可能更喜欢使用更具体的选择器,例如 $('embed[src^="http://www.youtube.com/"]')$('object param[name="movie"]')——这取决于您的页面在其他地方包含什么...

        参见 API 参考:

        【讨论】:

        • Uncaught TypeError: Object [object Object] has no method 'prop'
        • @Justin 您使用的是 1.6 之前的 jQuery 版本。当前版本中引入了prop,但之前的版本需要attr
        • 所以由于某种原因第一次执行代码时,视频不会自动播放。它在第二次运行代码时起作用,依此类推。这有什么关系?
        • @lonesomeday - +1 - 这个答案帮助我解决了类似问题的问题:stackoverflow.com/questions/9423973/…
        • @JustinMeltzer - 我有一个类似的问题,我没有使用autoplay=1,但我尝试看到您的评论,并且使用与上面相同的代码对我来说效果很好。
        猜你喜欢
        • 2012-02-07
        • 2016-05-12
        • 2021-03-13
        • 2013-04-28
        • 2017-09-17
        • 1970-01-01
        • 1970-01-01
        • 2016-08-30
        • 2015-03-02
        相关资源
        最近更新 更多