javascript - How to use the <webview> methods in Electron -


on electron <webview> documentation there list of methods can use object. when try run of methods, none of them work. when looked in inpect properties of <webview> element in inspector, says prototype webview. (__proto__ : webview)

it in prototype of methods stored. element should inherit methods prototype when use methods (e.g. mywebview.opendevtools()).

however! when use object.getproptotypeof(mywebview) htmlelement, not webview shows in inspector.

here example of code:

<webview id="mywebview" src="path/to.file"></webview>  <script>    var mywebview = document.getelementbyid('mywebview');   console.log("mywebview: ",mywebview);   console.log("prototype: ",object.getprototypeof(mywebview)); //=> htmlelement   mywebview.opendevtools(); </script> 

i discovered issue , added example electron documentation

the bottom line need add listener webview listens when webview element ready:

webview.addeventlistener("dom-ready", function(){   webview.opendevtools(); }); 

according @shwany, webview's methods available when did-start-loading event fired, may better practice wait until webview element ready using dom-ready


for more detailed explanation:

when window rendering dom, webview methods not available. initially, prototype <webview> element still generic htmlelement.

it after page renders <webview> element begins loading , prototype changed webview prototype (same name element). , when gains access webview prototype, gains access of webview prototype methods.


Comments

Popular posts from this blog

javascript - oscilloscope of speaker input stops rendering after a few seconds -

javascript - gulp-nodemon - nodejs restart after file change - Error: listen EADDRINUSE events.js:85 -

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' -