[英]Using Vimeo's api after video called by ajax
我在網站上使用裝飾主題,當訪問者單擊作品集中的一個項目時,它將加載帖子的內容。 該帖子由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從外部鏈接停止/卸載視頻( 這是一個非常基本的測試 )。 這是控件的代碼:
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'); });
}
但是這一次我似乎無法設法使用api作為ajax調用后的視頻加載。
我試圖將上面的代碼包含在$(document).ajaxComplete(function(event, xhr, settings) { ... });
但沒有運氣。
這是一個可以看到它的測試站點 。 菜單中的投資組合鏈接,然后單擊第一項 。 它將加載內容,並在右上角顯示一個小十字,以使視頻停止播放,但不停止。
幫助將不勝感激,我很迷路。
要做的第一件事是檢查頁面上是否沒有任何JavaScript錯誤。
您的iframe選擇器可能是通用的,您可能會捕獲其他“插件”(例如Facebook)使用的其他iframe。
要運行,需要froogaloop的功能需要在iframe上使用一個ID。 如果iframe上沒有ID,則您的ready事件將不會收到任何信息,並且player_id將是未定義的。
由於您正在使用JQuery,因此可以通過以下方式更改腳本的第一行:
var vimeoPlayers = $("iframe#player_0"), player;
使用此行,您將確保僅選擇所需的iframe。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.