Electron的WebView.loadURL触发重新加载

时间:2017-01-21 05:22:53

标签: javascript node.js dom webview electron

根据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加载了无数次。

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

1 个答案:

答案 0 :(得分:2)

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

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