Electron学习笔记(十)—— 常用api____webview

webview 标签用于集成 'guest(访客)' 内容(比如外部的网页)在你的 Electron 应用内。它们类似于 iframe,但是不同的是每个 webview 运行在独立的进程中。 作为页面它拥有不一样的权限并且所有的嵌入的内容和你应用之间的交互都将是异步的。 这将保证你的应用对于嵌入的内容的安全性。

webview 是 行内元素 

使用webview时,需要做如下配置

因为:
默认情况下,Electron >= 5禁用 webview 标签。
在构造 BrowserWindow 时,
需要通过设置 webviewTag webPreferences选项来启用标签

例子

<span id="loading"></span> 
<webview id="wb" src="https://www.baidu.com/" style="display:flex; width:100%; height:100vh"></webview>

<script>
 let loading = document.querySelector('#loading')
 let wb = document.querySelector('#wb')

 //监听嵌入的页面开始加载
 wb.addEventListener("did-start-loading",()=>{
    loading.innerHTML = "loading..."
  })
 //监听嵌入的页面加载完成
  wb.addEventListener("did-stop-loading",()=>{
    loading.innerHTML = "ok..."
  })
</script>

和普通的iframe有什么区别? 

与 iframe 不同, webview 在与应用程序不同的进程中运行。它与您的网页没有相同的权限, 应用程序和嵌入内容之间的所有交互都将是异步的。 这将保证你的应用对于嵌入的内容的安全性。 注意: 从宿主页上调用 webview 的方法大多数都需要对主进程进行同步调用。

除此之外,webview标签中还有很多属性

可向引用的页面注入自己的js,还可以通过webview对象的形式注入

 <webview id="wb" src="https://www.baidu.com/" preload="./webview_test/preload.js"></webview>

可向引用的页面注入自己的css

let wb = document.querySelector('#wb')

 wb.addEventListener("did-stop-loading",()=>{
    wb.insertCSS(`#su{background:red}`)
  })

可向引用的页面注入自己的js

let wb = document.querySelector('#wb')

 wb.addEventListener("did-stop-loading",()=>{
    wb.executeJavaScript(`alert(document.getElementById('su').value)`)
  })

打开嵌入页面的控制台

wb.openDevTools()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值