0

我正在为网站使用装饰主题,当访问者单击作品集中的项目时,它会加载帖子的内容。该帖子由来自 vimeo 的一个或多个视频组成,通过 iframe 调用如下:

<iframe id="player_0" src="http://player.vimeo.com/video/57038297?title=0&amp;byline=0&amp;portrait=0&amp;color=FF9A00&amp;api=1&amp;player_id=player_0" frameborder="0" width="632" height="356" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>

我已经使用 vimeo 的 froogaloop 从外部链接停止/卸载视频(这是一个非常基本的测试)。这是控件的代码:

var vimeoPlayers = document.querySelectorAll('iframe'), 
    player;

for (var i = 0, length = vimeoPlayers.length; i < length; i++) {
    player = vimeoPlayers[i];
    $f(player).addEvent('ready', ready);
}

function addEvent(element, eventName, callback) {
    if (element.addEventListener) { 
        element.addEventListener(eventName, callback, false); 
    }
    else { 
        element.attachEvent(eventName, callback, false); 
    }
}

function ready(player_id) {
    var container = document.getElementById(player_id),
        froogaloop = $f(player_id);
    $("a.stopvid").on('live', function(){ froogaloop.api('unload'); });
}

但是这次我似乎无法在 ajax 调用后加载视频时使用 api。

我试图将上面的代码包含在一个中,$(document).ajaxComplete(function(event, xhr, settings) { ... });但没有运气。

这是一个测试站点,可以查看它。菜单中的投资组合链接,然后单击第一项。它会加载内容并在右上角有一个小十字,应该会停止视频,但不会。

帮助将不胜感激,我很迷茫。

4

1 回答 1

0

首先要做的是检查您的页面上是否没有任何 javascript 错误。
您的 iframe 选择器可能是通用的,您可能会捕获其他“插件”(例如 Facebook)使用的其他 iframe。

要工作,froogaloop 就绪函数需要 iframe 上的 id。如果 iframe 上没有 id,您的 ready 事件将不会收到任何内容,并且 player_id 将未定义。

由于您使用的是 JQuery,因此将脚本的第一行更改为:

var vimeoPlayers = $("iframe#player_0"), player;  

使用此行,您将确保只选择您想要的 iframe。

于 2013-02-07T00:59:16.900 回答