Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 电子退出而不发射渲染过程事件_Javascript_Node.js_Electron - Fatal编程技术网

Javascript 电子退出而不发射渲染过程事件

Javascript 电子退出而不发射渲染过程事件,javascript,node.js,electron,Javascript,Node.js,Electron,当我按下加载在BrowserView中的某个网站上的按钮时,electron应用程序退出。这显然是一个崩溃,但它不会在BrowserWindow(渲染器)或BrowserView上发出渲染过程。就这样结束了。但是窗口全部关闭会发出 app.on('ready', () => { app.on('render-process-gone', (e, webContents, details) => { console.log('render-process-gone', de

当我按下加载在
BrowserView
中的某个网站上的按钮时,electron应用程序退出。这显然是一个崩溃,但它不会在BrowserWindow(渲染器)或BrowserView上发出
渲染过程。就这样结束了。但是
窗口全部关闭
会发出

app.on('ready', () => {
  app.on('render-process-gone', (e, webContents, details) => {
    console.log('render-process-gone', details);
  });

  const win = new BrowserWindow({
    frame: false,    
    webPreferences: {
      worldSafeExecuteJavaScript: true,
      nodeIntegration: true,
      webviewTag: false,
      enableRemoteModule: false,
    }
  });

  win.loadURL('file://' + __dirname + '/renderer.html');

  const view = new BrowserView({
    webPreferences: {
      preload: 'preload.js'
      worldSafeExecuteJavaScript: true,
      nodeIntegration: false,
      nodeIntegrationInSubFrames: true,
      enableRemoteModule: false,
    }
  });

  view.webContents.loadURL('http://website.com');

  view.webContents.on('render-process-gone', (e, details) => {
    console.log('render-process-gone', details);
  });

  win.setBrowserView(view);  

});

app.on('window-all-closed', () => {
  console.log('exiting...');
  app.quit();
});
有没有办法找出是什么原因造成的


更新:我在webPreferences中添加了
sandbox:true
,现在它不再崩溃了

Emitted when the renderer process crashes or is killed.

**Deprecated:** This event is superceded by the `render-process-gone` event
which contains more information about why the render process dissapeared. It
isn't always because it crashed.  The `killed` boolean can be replaced by
checking `reason === 'killed'` when you switch to that event.

#### Event: 'render-process-gone'

Returns:

* `event` Event
* `details` Object
  * `reason` String - The reason the render process is gone.  Possible values:
    * `clean-exit` - Process exited with an exit code of zero
    * `abnormal-exit` - Process exited with a non-zero exit code
    * `killed` - Process was sent a SIGTERM or otherwise killed externally
    * `crashed` - Process crashed
    * `oom` - Process ran out of memory
    * `launch-failure` - Process never successfully launched
    * `integrity-failure` - Windows code integrity checks failed

Emitted when the renderer process unexpectedly dissapears.  This is normally
because it was crashed or killed.
  • 在应用程序上添加了新的
    渲染进程消失
    事件,以替换
    渲染进程崩溃
    事件#23560
  • 添加了新的
    渲染过程消失
    事件以替换崩溃事件#23096
参考:


您是否在使用electron 10?在10()中添加了该事件,尽管文档将显示最新版本的文档并将包含它,因此,您可能已经在文档中找到了一个示例并使用了它,尽管您的电子版不支持它。您的电子版是?您使用的是哪种操作系统?它发生在最新的macos和windows 7上。因此,下面的答案显示已添加了
渲染过程已消失
事件,而不是
渲染过程崩溃