动态添加<webview>不起作用

时间:2017-12-19 11:51:50

标签: javascript webview handlebars.js electron

在我的 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>时,它就可以了。

1 个答案:

答案 0 :(得分:0)

我认为<script>标记会阻止<webview>被电子考虑在内。

为了解决这个问题,我将<webview>标记直接放在HTML中并使用JavaScript检索它(不使用Handlebars)。