2011-08-29 44 views
2

異常是什麼意思?我該如何解決它?我正在使用最新的Google Chrome for Ubuntu。DOM異常11調用webkitEnterFullscreen()

+0

您使用的是什麼瀏覽器?哪個版本? – Bodman

+3

在Chromium中,對'videoElement.webkitEnterFullScreen()'的調用需要通過用戶操作(例如按鈕單擊)啓動。如果您的JS試圖在用戶驅動的情況下全屏顯示視頻,則會出現此錯誤。 – ebidel

回答

4

INVALID_STATE_ERR: DOM Exception 11可能在視頻元素收到其資產的元數據之前調用webkitEnterFullscreen時發生。最簡單的解決方案是將webkitEnterFullscreen的調用放入分配給該視頻的loadedmetadata事件的回調函數中。

在移動環境中,您需要通過使其用戶因爲遊戲啓動和全屏行動必須通過用戶交互移動環境中進行驅動的調用一個可觸摸的元件固定在拿東西了一步。

的代碼看起來應該有點像這樣:

var video, play, fullscreen; 

video = document.createElement('video'); 
video.src = 'my_cool_video.mp4'; 
video.addEventListener('loadedmetadata', function() { 
    fullscreen.disabled = false; 
}, false); 

play = document.createElement('button'); 
play.innerHTML = 'PLAY'; 
play.addEventListener('click', function() { 
    video.play(); 
}, false); 

fullscreen = document.createElement('button'); 
fullscreen.innerHTML = 'FULLSCREEN'; 
fullscreen.disabled = true; 
fullscreen.addEventListener('click', function() { 
    video.webkitEnterFullscreen(); 
}, false); 

document.body.appendChild(video); 
document.body.appendChild(play); 
documnet.body.appendChild(fullscreen); 
相關問題