新視窗如何處理

李峰發表於2017-12-11

瀏覽器中會彈出新視窗的行為在 Electron 依然可以彈出新視窗,比如點選 a 標籤、window.open

如果不做任何處理,點選主視窗top下的a標籤是彈不出視窗的,而是會返回一個proxy;而點選主視窗下的iframe中的a就可以彈出視窗,返回了null。

處理主視窗下的新視窗彈出

mainWindow.webPreferences.nativeWindowOpen (Boolean default: false)
  • false:不彈出視窗,返回proxy
  • true: 彈出視窗

如何統一處理?

mainWindow.webContents.on('new-window',(event, url) => {

}

換預設瀏覽器彈出

shell.openExternal(url)

參考:

https://electronjs.org/docs/api/browser-window

https://electronjs.org/docs/api/shell

https://electronjs.org/docs/api/window-open

相關文章