webview

最后更新于:2022-04-02 03:34:39

[TOC] [https://www.kancloud.cn/wizardforcel/electron-doc/137786](https://www.kancloud.cn/wizardforcel/electron-doc/137786) ## 概述 与`iframe`不同,`webview`和你的应用运行的是不同的进程. 它不拥有渲染进程的权限,并且应用和嵌入内容之间的交互全部都是异步的.因为这能保证应用的安全性不受嵌入内容的影响 ## 标签 ### src `` 也可填写 data url `` ### autosize 如果这个属性的值为 "on" ,`webview`容器将会根据属性`minwidth`,`minheight`,`maxwidth`, 和 `maxheight`的值在它们之间自适应. 只有在`autosize`开启的时候这个约束才会有效. 当`autosize`开启的时候,`webview`容器的 size 只能在上面那四个属性值之间. ` ` ### nodeintegration 可以使用 `require` 与`process` ``` ``` 如果设置了这个属性,`webview`中的 guest page 将整合node,并且拥有可以使用系统底层的资源,例如`require`和`process`. ### plugins 可使用浏览器插件 ` ` 如果这个属性的值为 "on" ,`webview`中的 guest page 就可以使用浏览器插件。 ### allowpopups 允许打开新窗口 ## 方法 ### `.loadURL(url[, options])` * `url`URL * `options`Object (可选) * `httpReferrer`String - 一个http类型的url. * `userAgent`String -用于发起请求的用户代理. * `extraHeaders`String - 额外的headers,用 "\\n"分隔. 加载 webview 中的`url`,`url`必须包含协议前缀,例如`http://`或`file://` ### `.getURL()` ### `.getTitle()` ### `.isLoading()` ### `.stop()` 停止渲染 ### `.reload()` ### `.goBack()` ### `.goForward()` ### `.goToOffset(offset)` 导航到指定位置 ### `.getUserAgent()` 返回用户代理的名字 ### `.setUserAgent(userAgent)` 设置用户代理 ### `.openDevTools()` 打开开发工具调试窗口 ## 例子 ### 简单demo ``` window.onload=()=>{ const webview = document.querySelector('#foo'); const indicator = document.querySelector('.indicator'); let loadstart = ()=> { indicator.innerText = "loading..."; } let loadstop = ()=> { indicator.innerText = "ok"; } webview.addEventListener("did-start-loading", loadstart); webview.addEventListener("did-stop-loading", loadstop); } ```
';