【问题标题】:Change Vimeo Video using JQuery使用 JQuery 更改 Vimeo 视频
【发布时间】:2011-02-27 06:55:33
【问题描述】:

如何更改嵌入 vimeo 视频的 ID?以下是嵌入代码示例:

<object width="578" height="325">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11527784&amp;
server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id=11527784&amp;
server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;
color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" 
allowscriptaccess="always" width="578" height="325"></embed></object>

如何使用 JQuery 或纯 JavaScript 更改对象值和嵌入源中的 clip_id?

这样做的效果是它改变了视频。我已经在 Firefox 上测试过,如果这不适用于所有浏览器,请告诉我!

感谢大家的帮助

【问题讨论】:

    标签: javascript jquery vimeo


    【解决方案1】:

    这有一些跨浏览器的影响。

    您可能想看看another question on SO。

    您应该使用 SWFObject 插件作为stated by SolutionYogi。

    这是另一个相关问题: How to use javascript to swap swf in html?

    【讨论】:

    • 感谢您的回复。您所说的跨浏览器含义是什么?
    • 在旧版浏览器中加载 Flash 文件可能相当棘手。我在某处读到,您必须将对象元素重新加载到 DOM 中才能加载。不过,我目前找不到指向该链接的链接。同时,还有一系列使用 SWFObject 而非 at this forum thread 的理由。
    【解决方案2】:

    我不确定“何时”要替换它,所以我在点击时进行了替换。试试这个:

    $('#change_me').click(function() {
        var val = $('embed').attr('src').replace(/clip_id=(?=\d).\d+/g, 'clip_id='+new_id);
    
    
        $('embed').attr('src', val);
        alert($('embed').attr('src'));
    });
    

    此正则表达式将查找后跟任何数字且仅数字的 clip_id,并将其替换为新的 id。您可以在包含 clip_id 的两个 url 上执行此操作。我很确定它适用于所有浏览器,尽管我现在无法测试它。

    注意:我确信可以使用更好的正则表达式,但我对它们不是特别擅长,所以我只能想出 atm。

    希望对你有帮助

    【讨论】:

    • 什么是选择器:$('embed') 似乎不适用于该选择器?
    • 它会选择 标签,不过,如果您的网站上有更多 Flash 电影,它将选择您网站上的第一个,因此您必须更改使用您的代码的选择器,例如您将使用 $('param[name="movie"]') 在 param 标记中选择 clip_id。 Prolly 最好的方法是将它包装在某个 div 上。
    【解决方案3】:
        var params = document.getElementsByTagName("param");
        var clip_url = 11527780;
        var vimeo = "http://vimeo.com/moogaloop.swf?clip_id=" + clip_url + "&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1";
        params[2].setAttribute("value", vimeo);
    
        var embed = document.getElementsByTagName("embed");
        embed[0].setAttribute("src", vimeo);
    

    clip_url 是 vimeo 视频的 id。

    【讨论】:

    • 在 Firefox 中工作得像一种享受,但在 IE8 上尝试过,我得到这个错误:Message: '2' is null or not an object。
    • 它在第 18 行显示错误。我不太确定它可能是什么。我正在其他浏览器上尝试这个编辑:它似乎也不适用于 Chrome。我猜 DOM 代码不适用于嵌入式视频
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 2012-06-28
    • 2020-02-27
    相关资源
    最近更新 更多