我正在使用网站的garnish主题,当访问者点击作品集中的某个项目时,它会加载帖子的内容。该帖子由vimeo中的一个或多个视频组成,通过iframe调用,如下所示:
<iframe id="player_0" src="http://player.vimeo.com/video/57038297?title=0&byline=0&portrait=0&color=FF9A00&api=1&player_id=player_0" frameborder="0" width="632" height="356" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
我已经使用vimeo的froogaloop从外部链接(here's a very basic test)停止/卸载视频。这是控件的代码:
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) { ... });
中,但没有运气。
这是一个test site来看待它。菜单中的投资组合链接,然后点击第一项。它会加载内容和右上角的一个小十字,应该停止视频,但不会。
帮助将受到高度赞赏,我很遗憾。
答案 0 :(得分:0)
要做的第一件事是检查您的网页上是否有任何javascript错误 您的iframe选择器可能是通用的,您可能会捕获其他“插件”(如Facebook)使用的其他iframe。
要工作,froogaloop ready fonction需要iframe上的id。如果iframe上没有id,则ready事件将不会收到任何内容,并且player_id将是未定义的。
由于您使用的是JQuery,请通过以下方式更改脚本的第一行:
var vimeoPlayers = $("iframe#player_0"), player;
使用此行,您将确保只选择所需的iframe。