6.Electron之BrowserView嵌入子视图

简介: 6.Electron之BrowserView嵌入子视图

一、核心代码

app.on('ready', () => { //app初始化参数
    mainWindow = new BrowserWindow({
        windth: 1200,
        height: 800,
        webPreferences: {
            nodeIntegration: true, //使用node功能
            contextIsolation: false,
            enableRemoteModule: true
        }
    })
    mainWindow.webContents.openDevTools() //默认打开调试模式    
    mainWindow.loadFile('index.html') //打开窗口加载的页面
 
    let BrowserView=electron.BrowserView 
    let view=new BrowserView //创建子视图
    mainWindow.setBrowserView(view) //将子视图嵌入到父窗口
    view.setBounds({  //设置坐标、宽度、长度
        x:0,
        y:50,
        width:1000,
        height:600
    })
 
    view.webContents.loadURL("https://up.enterdesk.com/photo/2008-6-13/200806131108306030.jpg") //设置子窗口加载的链接
    mainWindow.on('close', () => { //窗口关闭时,释放页面
        mainWindow = null
    })
})

二、全部代码

index.js

const electron = require('electron') //引入electron组件
var app = electron.app //引入组件app
var BrowserWindow = electron.BrowserWindow //窗口引用
 
var mainWindow = null //申明打开窗口
 
app.on('ready', () => { //app初始化参数
    mainWindow = new BrowserWindow({
        windth: 1200,
        height: 800,
        webPreferences: {
            nodeIntegration: true, //使用node功能
            contextIsolation: false,
            enableRemoteModule: true
        }
    })
    mainWindow.webContents.openDevTools() //默认打开调试模式    
    mainWindow.loadFile('index.html') //打开窗口加载的页面
 
    let BrowserView=electron.BrowserView 
    let view=new BrowserView //创建子视图
    mainWindow.setBrowserView(view) //将子视图嵌入到父窗口
    view.setBounds({  //设置坐标、宽度、长度
        x:0,
        y:50,
        width:1000,
        height:600
    })
 
    view.webContents.loadURL("https://up.enterdesk.com/photo/2008-6-13/200806131108306030.jpg") //设置子窗口加载的链接
    mainWindow.on('close', () => { //窗口关闭时,释放页面
        mainWindow = null
    })
})

index.html

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
 
<body>
    <button id="mybtn">打开子窗口</button>
    <script src="./render/index.js"></script>
</body>
 
</html>

/render/index.js

var mybtn = document.querySelector('#mybtn')
mybtn.onclick = function (e) {
    window.open("https://www.baidu.com")
}

三、测试

相关文章
|
JavaScript 前端开发 开发工具
使用Vue.js、Vuetify和Netlify构建现代化的响应式网站
使用Vue.js、Vuetify和Netlify构建现代化的响应式网站
671 0
|
前端开发
三种方式实现主题切换方案
三种方式实现主题切换方案
|
NoSQL 应用服务中间件 Redis
在华为鲲鹏OpenEuler20.03系统上安装Redis, Zookeeper, Nginx
在华为鲲鹏OpenEuler20.03系统上安装Redis, Zookeeper, Nginx
4118 0
在华为鲲鹏OpenEuler20.03系统上安装Redis, Zookeeper, Nginx
|
9月前
|
JavaScript 前端开发 算法
Vue 与 React 深度对比:底层原理、开发体验与实际性能
本文深入对比Vue 3/Vue 4与React 19的核心原理、性能差异与开发体验。Vue基于Proxy响应式与编译优化,追求自动高效;React依托虚拟DOM、Fiber架构与并发渲染,强调灵活可控。两者在更新粒度、语法范式、学习曲线和生态上各有优劣。Vue适合快速开发与中小型项目,React更适配复杂交互与高定制需求。未来Vue趋向信号机制与Vapor Mode,React发力服务端组件与自动记忆化。选择应基于团队能力、项目场景与维护成本,追求技术适配性而非先进性。
1459 7
|
前端开发 JavaScript API
electron多标签页模式更像客户端
electron多标签页模式更像客户端
1465 7
electron多标签页模式更像客户端
|
供应链 安全 数据挖掘
1688电商API接口:赋能电商全链路运营的数字化工具
在数字经济时代,1688电商API接口为企业提供商品管理、订单处理、支付集成、物流跟踪等全场景解决方案,助力企业实现数据互通、流程自动化,提升运营效率与业务增长。
1688电商API接口:赋能电商全链路运营的数字化工具
|
机器学习/深度学习 安全 数据挖掘
安全地运行 Jupyter 服务
【8月更文第29天】Jupyter Notebook 是一种流行的交互式计算环境,广泛应用于数据分析、机器学习等领域。然而,随着 Jupyter 服务越来越多地被部署在网络环境中,安全问题变得日益重要。本文将介绍一些最佳实践,帮助您保护 Jupyter 服务器免受攻击和数据泄露的风险。
1199 0
|
JavaScript 应用服务中间件 Apache
获取客户端的IP地址
获取客户端的IP地址
|
JavaScript 数据安全/隐私保护 Python
东方财富股票数据JS逆向:secids字段和AES加密实战
东方财富股票数据JS逆向:secids字段和AES加密实战
1085 0

热门文章

最新文章