美文网首页
Electron 截获 will-navig

Electron 截获 will-navig

作者: l蓝色梦幻 | 来源:发表于2019-05-08 20:22 被阅读0次

    Electron官方文件告诉了我们,直接在<webview>上监听 will-navigate 事件是没有用的。

    但是我们需要实现 will-navigate 拦截事件,阻止 <webview> 的跳转。经过搜索后发现,所有的 event.preventDefault() 都应该从主程序中呼叫而不是渲染程序。

    经过尝试,解决方案如下:

    官方文档webContents 上有个事件, did-attach-webview 。我们应用这个事件在主进程中获取到 webContents

    1. 在最外层 BrowserWindowwebContents 上监听 did-attach-webview 事件,获取新挂上去的 <webview>webContents

    2. 使用获取到的 webContents 监听 will-navigate事件。

    这时候,我们就可以在 will-navigate 事件中使用 e.preventDefault() 阻止 <webview> 导航至其他网页了。

    参考:

    Electron: 截獲 <webview> will-navigate 事件, 為內容來源實作白名單

    webview navigation events

    correct error about will-navigate event in docs/api/web-contents.md

    相关文章

      网友评论

          本文标题:Electron 截获 will-navig

          本文链接:https://www.haomeiwen.com/subject/hvtboqtx.html