electron 拦截 window.open

一、背景

我之前写一个工具用来客户端加载网页,同时可以注入js,增加功能,类似chrome 浏览器扩展逻辑,但由于网页总是新建一个窗口,我虽然用JS 注入,修改了所有 a 标签的 。但对于动态的无能为力,除非定时器不停遍历,但性能不好,于是就想从electron入手。

二、过程

自己网络查找一些有关的信息,找到一个new-window 事件,这个事件可以捕获新建窗口逻辑。

one_plugin_ui.webContents.on('new-window',(event, url, frameName, disposition, options, additionalFeatures)=>{
      log.debug("new")
      one_plugin_ui.loadURL(url) //在当前窗口打开,如果不想打开,完全想拦截,可以通过url 判断,然后不跳转URL
      event.preventDefault()      
    })