在我的 Electron 应用中,我希望通过HTML文件动态添加<webview>
,以便在与主渲染器不同的过程中呈现它们。
我使用Handlebars在Javascript中管理我的模板。
当我动态添加<webview>
时,它无法正常工作。
在我的渲染器中,我这样做:
// library inclusion
let templateElement = document.createElement('template')
templateElement.innerHTML = Handlebars.compile(document.querySelector('template').innerHTML)(data) // data contain the id (myWebview) and html (file://[...])
let content = templateElement.content
document.querySelector('#myDiv').appendChild(content.querySelector('#myWebview')) // here, the <webview> is created and placed in the right position
let webview = document.querySelector('webview') // return the <webview>
webview.addEventListener('dom-ready', () => {
// this event never called
webview.loadURL(webview.getAttribute('src'))
})
这是我的.html
:
<div id="myDiv"></div>
<script id="template" type="text/x-handlebars-template">
<webview id="{{id}}" src="{{html}}"></webview>
</script>
修改
当我将<webview>
直接添加到HTML时,它可以正常工作。当我将<webview>
更改为<iframe>
时,它就可以了。
答案 0 :(得分:0)
我认为<script>
标记会阻止<webview>
被电子考虑在内。
为了解决这个问题,我将<webview>
标记直接放在HTML中并使用JavaScript检索它(不使用Handlebars)。