根据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加载了无数次。
我认为官方网站上没有进一步澄清这个问题,谷歌当然也没有。任何帮助将不胜感激。
答案 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)