Javascript 电子-从渲染器进程调整窗口大小

Javascript 电子-从渲染器进程调整窗口大小,javascript,resize,electron,Javascript,Resize,Electron,我正在开发一个Electron应用程序,作为界面的一部分,一旦发生了什么事情,我想增加窗口的大小(我现在已经把它绑定到一个按钮上),这样我就可以显示额外的数据。我尝试使用在onclick=resize()上激活的以下代码执行此操作: 但是,我在窗口/浏览器控制台中遇到以下错误: Uncaught Error: Could not call remote function 'setBounds'. Check that the function signature is correct. Unde

我正在开发一个Electron应用程序,作为界面的一部分,一旦发生了什么事情,我想增加窗口的大小(我现在已经把它绑定到一个按钮上),这样我就可以显示额外的数据。我尝试使用在
onclick=resize()
上激活的以下代码执行此操作:

但是,我在窗口/浏览器控制台中遇到以下错误:

Uncaught Error: Could not call remote function 'setBounds'. Check that the function signature is correct. Underlying error: Error processing argument at index 0, conversion failure from #<Object>
Error: Could not call remote function 'setBounds'. Check that the function signature is correct. Underlying error: Error processing argument at index 0, conversion failure from #<Object>
    at callFunction (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:257:11)
    at EventEmitter.<anonymous> (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:357:5)
    at emitMany (events.js:127:13)
    at EventEmitter.emit (events.js:204:7)
    at WebContents.<anonymous> (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\api\web-contents.js:256:13)
    at emitTwo (events.js:106:13)
    at WebContents.emit (events.js:194:7)
    at callFunction (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:257:11)
    at EventEmitter.<anonymous> (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\rpc-server.js:357:5)
    at emitMany (events.js:127:13)
    at EventEmitter.emit (events.js:204:7)
    at WebContents.<anonymous> (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\browser\api\web-contents.js:256:13)
    at emitTwo (events.js:106:13)
    at WebContents.emit (events.js:194:7)
    at metaToValue (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\renderer\api\remote.js:234:13)
    at Object.remoteMemberFunction (C:\Users\Thomas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\renderer\api\remote.js:118:18)
    at resize (file:///D:/Documents/Development/Projects/ShortenMeURL/V1/index.html:41:45)
    at HTMLButtonElement.onclick (file:///D:/Documents/Development/Projects/ShortenMeURL/V1/index.html:22:86)
Uncaught错误:无法调用远程函数“setBounds”。检查函数签名是否正确。基础错误:处理索引0处的参数时出错,从的转换失败#
错误:无法调用远程函数“setBounds”。检查函数签名是否正确。基础错误:处理索引0处的参数时出错,从的转换失败#
在调用函数(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\rpc server.js:257:11)
在黄昏时分。(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\rpc server.js:357:5)
在emitMany(events.js:127:13)
在EventEmitter.emit(events.js:204:7)
在网络内容上。(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\api\web contents.js:256:13)
两点钟(events.js:106:13)
在WebContents.emit上(events.js:194:7)
在调用函数(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\rpc server.js:257:11)
在黄昏时分。(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\rpc server.js:357:5)
在emitMany(events.js:127:13)
在EventEmitter.emit(events.js:204:7)
在网络内容上。(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\browser\api\web contents.js:256:13)
两点钟(events.js:106:13)
在WebContents.emit上(events.js:194:7)
在metaToValue(C:\Users\Thomas\AppData\Roaming\npm\node\U modules\electron\dist\resources\electron.asar\renderer\api\remote.js:234:13)
在Object.remoteMemberFunction(C:\Users\Thomas\AppData\Roaming\npm\node\u modules\electron\dist\resources\electron.asar\renderer\api\remote.js:118:18)
在调整大小时(file:///D:/Documents/Development/Projects/ShortenMeURL/V1/index.html:41:45)
在HTMLButtonElement.onclick(file:///D:/Documents/Development/Projects/ShortenMeURL/V1/index.html:22:86)

关于如何修复此问题的任何建议?

只需使用渲染器中的普通旧javascript,如果只是调整大小,我不会在主进程和渲染器进程之间添加不必要的消息;)

对象的定义(它是的第一个参数)比您预期的更严格。由于其属性没有默认值,因此必须定义所有属性

例如:

remote.getCurrentWindow().setBounds({
    x: 1621,
    y: 611,
    width: 10,
    height: 1000
});

另外,如果您只想调整大小,您可以使用BrowserWindow,如果有人遇到类似错误,请确保提供整数值,例如
123
,而不是
123,45
<代码>数学。将它们四舍五入以确保正确


遗憾的是,文档中没有提到这一点。

您是否尝试过为矩形对象提供所有道具?文档不会将任何道具标记为可选道具。您是否尝试过设置大小(w,h)?@pergy有效,谢谢。您是否愿意将其作为答案发布,以便我可以给您代表等。很高兴听到!;)发布它作为答案!知道如何使电子浏览器窗口对内容做出响应吗?
MutationObserver
在body元素上,然后
resizeTo
@oldboy
window.resizeTo(1000,900);
remote.getCurrentWindow().setBounds({
    x: 1621,
    y: 611,
    width: 10,
    height: 1000
});