Javascript 如何确定电子窗口的大小';基于其中HTML元素的宽度的宽度?

Javascript 如何确定电子窗口的大小';基于其中HTML元素的宽度的宽度?,javascript,node.js,electron,Javascript,Node.js,Electron,我在electron窗口的HTML中有一个元素,我不知道该元素的宽度。如何将在main.js中创建的electronBrowserWindow的最小宽度设置为等于所述HTML元素的宽度 我试着在index.html文件中使用element.offsetWidth来获取元素的宽度,然后在同一文件中使用下面的代码来设置窗口的最小大小,但不知怎的,大小最终被关闭了。我不知道为什么。从一些控制台输出来看,它应该可以工作 var remote = require('electron').remote; v

我在electron窗口的HTML中有一个元素,我不知道该元素的宽度。如何将在
main.js
中创建的electron
BrowserWindow
的最小宽度设置为等于所述HTML元素的宽度

我试着在
index.html
文件中使用
element.offsetWidth
来获取元素的宽度,然后在同一文件中使用下面的代码来设置窗口的最小大小,但不知怎的,大小最终被关闭了。我不知道为什么。从一些控制台输出来看,它应该可以工作

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);
}
或者,您可以直接使用该方法,该方法应该可以实现您想要的(尽管它没有强制执行最小大小,显然

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

它被关闭了多少?它会被浏览器窗口边框的宽度完全关闭吗?不。它被关闭了大约26px。没有浏览器有那么厚的边框。如果有滚动条,它实际上可能是26px。有吗?