如何发现canvas.requestFullscreen()失败的原因?

如何发现canvas.requestFullscreen()失败的原因?,canvas,html5-canvas,dart,webgl,fullscreen,Canvas,Html5 Canvas,Dart,Webgl,Fullscreen,手头的任务是向用Dart编写的WebGL应用程序添加对全屏模式的支持 canvas.requestFullscreen()适用于简单的测试用例,但在整个应用程序中失败 请指出阻止浏览器切换到全屏的原因 代码是: void trapFullscreenError(){ document.onFullscreenError.listen((e){ 日志(“fullscreenerror:$e”); }); } 无效切换全屏(画布元素c){ 日志( “fullscreenSupport=${docum

手头的任务是向用Dart编写的WebGL应用程序添加对全屏模式的支持

canvas.requestFullscreen()适用于简单的测试用例,但在整个应用程序中失败

请指出阻止浏览器切换到全屏的原因

代码是:

void trapFullscreenError(){
document.onFullscreenError.listen((e){
日志(“fullscreenerror:$e”);
});
}
无效切换全屏(画布元素c){
日志(
“fullscreenSupport=${document.fullscreenEnabled}fullscreenElement=${document.fullscreenElement}”
);
if(document.fullscreenElement!=null){
日志(“退出全屏”);
document.exitFullscreen();
}否则{
日志(“请求全屏显示”);
c、 请求全屏();
}
}
在Chrome中,该代码会导致:

fullscreenSupport=true fullscreenElement=null
requesting fullscreen
fullscreenerror: Instance of 'Event' 
Dartium调试器显示以下字段:

Event [id=4]
_selector null
bubbles true
cancelable false
clipboardData null
currentTarget #document [id=5]
defaultPrevented false
eventPhase 3
hashCode 234642739
path NodeList[6] [id=6]
target canvas#main_canvas [id=7]
timeStamp 1398779450832
type "webkitfullscreenerror"

出于安全原因,
requestFullscreen
只能在键盘或单击事件的事件处理程序中调用


另请参见
log(“fullscreenerror:${e.detail}”)的输出内容?它引发异常:未捕获类型错误:未定义不是函数J.get$detail$x trapFullscreenError\u closure.call$1 fullscreen.dart:9 invokeClosure\u closure0.call$0 js\u helper.dart:1842\u IsolateContext.eval$1 isolate\u helper.dart:392\u callInIsolate\u isolate\u helper.dart:30 invokeClosure js\u helper.dart:1842(匿名函数)这只是在JavaScript中还是在Dart中。您尝试了哪些浏览器?是否可以尝试在事件处理程序中设置断点并检查参数
e
的类型?我错误地假设了事件类型而不是错误类型。您是否可以调查参数
e
是否包含包含附加信息的某些字段。您是否检查了此项:(只能通过鼠标或键盘事件调用)