在Electron 5+遥控器中获取窗口,文档和主体。

时间:2019-05-11 03:38:39

标签: javascript reactjs electron

当前,电子5.0取消了将nativeWindowOpennodeIntegration一起使用的功能,因此无法在ReactDOM.createPortal返回的document.body上使用window.open。他们没有采取任何解决方法,我已经尝试了其他答案中发现的所有问题,例如:

  • IPC将DOM节点返回到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始终被禁用)

0 个答案:

没有答案