2014-05-20 198 views
1

首先,我需要說我的英語不是最好的。 我試着去加載這個javascript代碼AA php文件:Video.js動態加載HTML

function reload() { 
var id = <?=$id?>; 
$('#vidid').load('other.php?&id='+id,true); 

} 

與此

<a href="#videodiv2" onclick="reload()" class="button">Mostrar envio</a> 
<div id="vidid"> </div> 

如果我把「other.php」直接的代碼在它的工作原理主要頁面,但如果我使用「功能重載()」不工作。 我搜索找到這一點,所以在不正確的方式做我解釋 https://github.com/videojs/video.js/blob/master/docs/guides/setup.md

我能閱讀英文比寫吧XD。但我不能使它與該手冊一起工作

videojs("example_video_1", {}, function(){ 
// Player (this) is initialized and ready. 
}); 

這是javascript代碼正確嗎?所以在「example_video_1」我應該替換爲「vidid」? 並將「function()」替換爲「function reload()」? 和我應該寫在/ /播放器(這)是初始化和準備。 注意:我使用video.js變體允許顯示YouTube視頻+自動播放。

對不起我的英文不好:S


感謝您的代碼bloodyKnuckles它可以完美兼容的MP4文件,但與YouTube的插件說,「富硒公頃producido未錯誤intentalo DE NUEVO MAS晚報/錯誤有被內容時發生,請稍後再試」我使用的代碼的這個小變化你寫的

<link type="text/css" rel="stylesheet" href="https://vjs.zencdn.net/4.5.1/video-js.css" /> 
<script src="https://vjs.zencdn.net/4.5.1/video.js"></script> 
<script src="./src/youtube.js"></script> 
<script src="http://code.jquery.com/jquery-1.9.0.js"></script> 
<script> 
function reload() { 
$('#vidid source').attr('src', '<?=$id?>'); 
videojs("vidid", {}, function(){ 
    this.play(); 
}); 
} 
</script> 

和HTML

<video id="vidid" class="video-js vjs-default-skin" autoplay="autoplay" controls preload="auto" width="640" height="360" data-setup='{ "techOrder": ["youtube"] }'> 

<source src="http://video-js.zencoder.com/oceans-clip.mp4" type="video/youtube" /> 
</video><a href="#" onclick="reload(); return false;" class="button">Mostrar envio</a> 

這與我在other.php中的類似,它工作正常... youtube標誌出現,但是當我按下播放,不工作,併發送給我的消息「錯誤已發生,稍後再試」 ...就像URL/EMBED不存在一樣。但使用相同的文本/ URL「」它可以在other.php中使用。但不是在「阿賈克斯」之一。

回答

-1

如果我理解你是對的,問題是Video.js不會重新遍歷DOM來查找視頻元素;通過AJAX加載視頻元素(即你的reload()函數),或者更重要的是在Video.js初始化後不會存在。

雖然我對Video.js不夠熟悉,但卻告訴您如何最好地解決它。

1

試試這個:

function reload() { 
    $('#vidid source').attr('src', 'other.php?&id=' + '<?=$id?>'); 
    videojs("vidid", {}, function(){ 
     this.load(); 
    }); 
} 

假設HTML是:基於下面的評論

<video id="vidid" class="video-js vjs-default-skin" 
    controls preload="auto" width="640" height="264" 
    poster="http://video-js.zencoder.com/oceans-clip.png"> 
    <source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' /> 
</video> 

<a href="#" onclick="reload(); return false;" class="button">Mostrar envio</a> 

變化。

+0

除非Video.js有一個屬性更改事件,否則我不認爲這會解決它或者HTML5沒有這樣的事件(http://www.w3.org/2010/05/video/mediaevents.html)從中提醒Video.js源文件已更改。 – Jonline

+0

這有幫助。上面的更新迴應。 – bloodyKnuckles

+0

我不能回答我自己的主題,因爲在新手:S,我編輯我的第一篇文章的插件代碼有點問題:S – user3657540