gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:13:31 33 4
gpt4 key购买 nike

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

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

请指出阻止浏览器切换到全屏的方法。

代码是:

void trapFullscreenError() {
document.onFullscreenError.listen((e) {
log("fullscreenerror: $e");
});
}

void toggleFullscreen(CanvasElement c) {
log(
"fullscreenSupport=${document.fullscreenEnabled} fullscreenElement=${document.fullscreenElement}"
);

if (document.fullscreenElement != null) {
log("exiting fullscreen");
document.exitFullscreen();
} else {
log("requesting fullscreen");
c.requestFullscreen();
}
}

在 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 只能在键盘或点击事件的事件处理程序中调用。

另见 Javascript request fullscreen is unreliable

关于canvas - 如何发现 canvas.requestFullscreen() 失败的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352096/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com