微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Electron中实现通过webview实现内嵌网页并嵌入css样式和js脚本等


用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld:


https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106413828


Electron怎样进行渲染进程调试和使用浏览器和VSCode进行调试:


https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106414541


在上面搭建好项目以及知道怎样进行调试后


如果要想将某些web网页内嵌进来,类似于iframe的效果


显示webview


首先在html中添加webview标签





<div>  <webview id="wb" src="https://blog.csdn.net/BADAO_LIUMANG_QIZHI" /></div>

直接通过src属性设置要内嵌的网页的地址。


然后打开main.js,设置支持webviewTag属性为true

图片


然后运行项目



 


preload属性

preload属性能够在webview内所有脚本执行之前,先执行指定的脚本


在html中的webview标签


<webview id="wb" src="https://blog.csdn.net/BADAO_LIUMANG_QIZHI" preload="./js/preload.js"/>

添加preload属性并指向指定的脚本


在preload.js中






setTimeout(()=>{    alert("粉丝数:"+document.querySelector('#fan').innerHTML);}, 5000);

设置五秒后获取粉丝数,即通过id获取span的内容


图片


 


重新运行项目


图片


注入CSS和JS脚本


在js中可以获取到webview实例



const wb = document.querySelector('#wb');

然后通过设置其加载开始和加载完成的事件监听器对其进行css和js的注入


























//开始加载事件监听wb.addEventListener("did-start-loading", ()=> {    console.log("did-start-loading..."); })//停止加载事件监听wb.addEventListener("did-stop-loading", ()=> {    console.log("did-stop-loading...");     //注入css    wb.insertCSS(`    .title-blog {        background: red !important;    }    `)    //注入js脚本    wb.executeJavaScript(`        setTimeout(()=>{            alert("粉丝数:"+document.querySelector('#fan').innerHTML);        }, 2000);    `)    //打开调试工具    wb.openDevTools();})

运行项目看效果


 

图片




版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐