【问题标题】:Electron's WebView.loadURL triggers a reloadingElectron 的 WebView.loadURL 触发重新加载
【发布时间】:2017-06-06 04:09:00
【问题描述】:

根据 Electron 网站上的文档,您必须等到 webview 元素可用才能实际使用属于它的方法。大多数方法都可以正常工作,但我在理解如何以编程方式应用 WebView 的 loadURL() 方法的工作流程时遇到了一些问题。

Electron 网站上的示例

const webview = document.getElementById('foo')
webview.addEventListener('dom-ready', () => {
  webview.openDevTools()
})

我想改用<WebView>.loadURL(...) 方法,因为 WebView 会以编程方式加载 URL,我试过这个:

const webview = document.getElementById('foo')
webview.addEventListener('dom-ready', () => {
  webview.loadURL('http://google.com')
})

问题在于,它实际上触发了 WebView 的重新绘制(dom-ready 事件)本身,产生了一系列重新加载,导致 URL 加载无数次。

我在官方网站上没有看到对这个问题的进一步澄清,当然谷歌上也没有。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js dom webview electron


    【解决方案1】:

    你需要使用webview.removeEventListener,你可以这样做

    const webview = document.getElementById('foo')
    const loadPage = () => {
      webview.loadURL('http://google.com');
      webview.removeEventListener('dom-ready', loadPage);
    };
    webview.addEventListener('dom-ready', loadPage)
    

    【讨论】:

    • 移除 dom-ready 监听器是完全有意义的。谢谢你的回答!
    猜你喜欢
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多