2017-12-19 25 views
2

In meiner Electron App, ich bin auf der Suche nach dynamisch <webview> über HTML-Dateien hinzufügen, so dass sie in einem anderen Prozess als der Hauptrenderer gerendert werden.Dynamisch hinzufügen <webview> funktioniert nicht

ich Lenker meine Vorlagen in Javascript zu verwalten.

Wenn ich ein <webview> dynamisch hinzufügen, funktioniert es nicht.

In meinem Renderer, mache ich das:

// 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')) 
}) 

Hier ist mein .html:

<div id="myDiv"></div> 

<script id="template" type="text/x-handlebars-template"> 
    <webview id="{{id}}" src="{{html}}"></webview> 
</script> 

EDIT

Wenn ich <webview> direkt zu HTML hinzufügen, es korrekt funktioniert . Und wenn ich <webview> durch ändere, funktioniert es.

Antwort

0

Ich denke, der <script> Tag verhindert <webview> von durch Elektronen berücksichtigt werden.

Um das Problem zu umgehen, setze ich das <webview> Tag direkt in HTML und rufen Sie es mit JavaScript (ohne Verwendung von Lenkstangen).

Verwandte Themen