You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中按两次F11仍退出全屏的原因排查

问题原因
  • 浏览器对F11的全屏切换属于原生系统级操作,event.preventDefault()无法完全拦截该默认行为。即便你在代码里阻止了事件传播,浏览器仍会直接响应F11的全屏指令,绕开你编写的事件监听逻辑。
  • 代码中isTogglingFullScreen被设为true后没有重置为false的逻辑,但这并非两次按F11能退出全屏的核心原因——关键还是浏览器原生行为的优先级更高。
  • Phaser封装的全屏API(startFullscreen/stopFullscreen)和浏览器原生全屏状态并非完全同步。用户按下F11时,浏览器直接切换了自身的全屏状态,和Phaser维护的isFullscreen状态脱节,你的代码逻辑无法覆盖这种原生操作。

相关代码

this.input.keyboard.on('keydown-F11', (event) => {

   event.preventDefault();

   console.log("isTogglingFullScreen: ", isTogglingFullScreen);

   if (!isTogglingFullScreen){

     console.log("toggleFullScreen called");

     isTogglingFullScreen = true;

     this.scale.isFullscreen ? this.scale.stopFullscreen() : 
       this.scale.startFullscreen();
  
    }
       
 });

内容的提问来源于stack exchange,提问作者Newboy11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:50:55