2011-11-16 37 views
1

我想的onclick(我知道的作品)調用一個函數然後將其加載到頁面:如何使用的onclick視頻加載到一個HTML5頁面的JavaScript

我試圖創建一個視頻元素在HTML5中包含它的一些屬性。

我知道它的作品,因爲我有以下警報進行了測試:

alert("createSmallVideo has been called");

我現在已經評論了警報,我知道該函數被調用,但爲什麼不顯示視頻在網頁上:

function createSmallVideo(){ 
    //alert("createSmallVideo has been called"); 

    var video = document.createElement("video"); 

    video.setAttribute("id", "VideoElement"); 
    video.setAttribute("src", "videos/small.ogv"); 
    video.setAttribute("controls", "controls"); 
    video.setAttribute("preload", "auto"); 
    document.getElementById("#VideoContainer").appendChild(video); 
} 

我在做什麼錯?請幫忙!

+0

你在使用和您正在使用某種工具的研究與開發(螢火蟲例如)瀏覽器?如果你這樣做,控制檯會告訴你什麼?給定的視頻源是否正確? – GNi33

+0

'#VideoContainer'應該改爲'VideoContainer'。 '#'是爲CSS選擇器完成的(jQuery也使用該語法)。 – Jasper

回答

4

因爲您的網頁上沒有任何元素爲#VideoContainer(或者如果不存在的話)。元素Id不能包含#。如果你打開你的JavaScript控制檯,你可能會發現一個空引用錯誤消息。嘗試從您的電話中刪除#document.getElementById()

+1

我定義使用太多的jQuery元素選擇,完全忽略了這一點。 +1 – GNi33

+0

這是工作,謝謝你,但現在我只是想讓它馬上玩。你知道如何做到這一點? – user1048682

+0

'appendChild'調用'video.play()'之後。 – gilly3

0

您可以用JavaScript預裝太

function loadVideo(videoUrl){ 
var video; 
try { 
    video = new Video(); 
} catch(e) { 
    video = document.createElement('video'); 
} 
video.src = videoUrl; 
bindOnce(video, 'canplaythrough', function() {alert("Loaded");}); 
video.onerror = function(e){alert("Error");}; 
video.load(); 
} 
相關問題