Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在BrowserView或Webview中使用Youtube全屏按钮时阻止Electron Window全屏显示_Javascript_Electron - Fatal编程技术网

Javascript 如何在BrowserView或Webview中使用Youtube全屏按钮时阻止Electron Window全屏显示

Javascript 如何在BrowserView或Webview中使用Youtube全屏按钮时阻止Electron Window全屏显示,javascript,electron,Javascript,Electron,我正在制作一个具有浏览器窗口或Webview的应用程序,允许用户浏览互联网。使用Youtube时,如果单击全屏按钮,我的整个Electron应用程序将全屏显示。不是视频,而是我的整个应用程序,然后要退出全屏,我必须使用Youtube的全屏按钮。以下是它的外观图像: 在这幅图中,我的整个应用程序处于全屏模式。有没有办法阻止这种情况发生?我喜欢BrowserView本身的Youtube视频全屏显示,但我不喜欢我的整个应用程序变成全屏显示。所有带有全屏按钮的视频都会出现这种情况,例如Twitch -

我正在制作一个具有浏览器窗口或Webview的应用程序,允许用户浏览互联网。使用Youtube时,如果单击全屏按钮,我的整个Electron应用程序将全屏显示。不是视频,而是我的整个应用程序,然后要退出全屏,我必须使用Youtube的全屏按钮。以下是它的外观图像:

在这幅图中,我的整个应用程序处于全屏模式。有没有办法阻止这种情况发生?我喜欢BrowserView本身的Youtube视频全屏显示,但我不喜欢我的整个应用程序变成全屏显示。所有带有全屏按钮的视频都会出现这种情况,例如Twitch

-多谢各位


编辑:我发现了一个潜在的临时修复。如果我将BrowserWindow选项“fullscreenable”设置为false,那么fullscreenable:false将阻止BrowserView中的视频在填充BrowserView的同时使我的应用程序全屏显示。我仍然对是否有其他方法来实现这一点感兴趣。

我知道这是老办法,但我有同样的问题。 不幸的是,您找到的选项是最直接的

设置
fullscreen:false
的问题在于,当您确实想通过窗口控件进入全屏时,您将无法进入全屏

有一些钩子可以区分窗口调用的全屏与HTML,但它们是在事实之后,不可取消(
enterhtml全屏
enterfullscreen

我使用的选项是:

  win.on('enter-html-full-screen', function () {
    if (win.isFullScreen()) {
      setTimeout(function() {
        win.setFullScreen(false)
        win.maximize()
      }, 1000)
    }
  })
您必须等待窗口完成全屏移动,因此超时。如果您注销
isFullScreen
,您将看到它立即被调用,但当您尝试在没有超时的情况下将其设置为false时,会立即得到一个日志,表明窗口未处于全屏状态

该解决方案最大限度地利用了可能不需要的窗口。您可以将窗恢复为以前的尺寸,但随后会得到橡皮筋效果

另一个选项可能是在使用窗口控件时将窗口切换为
全屏:true
,然后通过IPC将其关闭,但我找不到直接的方法来实现这一点。我们需要一个
全屏预输入html
我们可以取消