2011-08-29 132 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);