如何根据其中的HTML元素的宽度来调整电子窗口的宽度?

我在电子窗口的HTML中有一个元素,我不知道元素有多宽。 我怎样才能设置在BrowserWindow中创build的电子BrowserWindow的最小宽度等于所述HTML元素的宽度?

我尝试在index.html文件中使用element.offsetWidth来获取元素的宽度,然后在同一个文件中使用下面的代码来设置窗口的最小尺寸,但是尺寸最终以某种方式closures。 我不知道为什么。 从一些控制台输出看来,它应该工作。

 var remote = require('electron').remote; var win = remote.getCurrentWindow(); win.setMinimumSize(elementWidth, 400); 

我的猜测是我的屏幕像素与CSS像素的大小不一样,但我不确定。 有没有更好的方法来做到这一点,或者我错过了什么?

这听起来像是窗口边框(例如滚动条)不被考虑在内。 您可以通过首先设置所需的大小,然后阅读您的实际大小,并将大小更新为所需的大小以及检测到的差异来考虑这些因素。

 // get elementWidth in some way var remote = require('electron').remote, win = remote.getCurrentWindow(); win.setMinimumSize(elementWidth, 400); // check size, update window width var contentWidth = window.innerWidth; if (contentWidth !== elementWidth) { win.setMinimumSize(2 * elementWidth - contentWidth, 400); } 

或者,你可以直接使用win.setContentSize方法,它应该实现你想要的(虽然它不强制执行最小尺寸,显然…

 // get elementWidth in some way var remote = require('electron').remote, win = remote.getCurrentWindow(); win.setContentSize(elementWidth, 400);