当前,电子5.0取消了将nativeWindowOpen
与nodeIntegration
一起使用的功能,因此无法在ReactDOM.createPortal
返回的document.body上使用window.open
。他们没有采取任何解决方法,我已经尝试了其他答案中发现的所有问题,例如:
new remote.BrowserWindow
,它不会发送回要附加的有效DOM节点webContents.executeJavascript
(包含(function(){ return window })()
文档或正文)使流程挂起我似乎无法使用BrowserWindow做同样的事情:
// this is what works in Electron 4 with a warning see https://github.com/electron/electron/pull/15193
const container = window.open("about:blank", "someuniqueid"); // window = current main window
const stylesheet = document.createElement('link');
stylesheet.rel = 'stylesheet';
stylesheet.href = document.querySelector('link').href; // document = current main window
container.document.body.appendChild(stylesheet);
// [... edited for brevity]
return createPortal(
props.children(container), // children = render props, pass the window to the children
container.document.body
)
什么都无法从创建的窗口返回有效的DOM节点。 require('electron')
出于明显的原因也不起作用(nodeIntegration始终被禁用)