3 - Electron app BrowserWindow对象-关于窗口

优雅的打开应用~

当加载缓慢,打开应用的一瞬间会出现白屏,以下方法可以解决

const mainWindow = new BrowserWindow({ show: false })
mainWindow.once('ready-to-show', () => {
  mainWindow.show()
})

设置背景颜色

const win = new BrowserWindow({ backgroundColor: '#2e2c29' })

定义多窗口

const createWindow = () => {
  const win = new BrowserWindow({
    width: 1000,
    height: 600,
  });
   win.loadFile("index.html");

   const win2 = new BrowserWindow({
    width: 600,
    height: 600,
  });
   win2.loadURL('https://www.csdn.net/')
};
创建了两个互不相干的窗口

定义父子窗口 

const createWindow = () => {
  const win = new BrowserWindow({
    width: 1000,
    height: 600,
  });
   win.loadFile("index.html");

   const win2 = new BrowserWindow({
    width: 600,
    height: 600,
    parent:win,//父窗口是win
  });
   win2.loadURL('https://www.csdn.net/')
};
  • 当不属于父子窗口时,拖动哪个窗口哪个窗口置顶 
  • 当属于父子窗口时,拖动窗口后,子窗口置顶,父窗口在下面 

frame属性

const createWindow = () => {
  const win = new BrowserWindow({
    width: 1000,
    height: 600,
    frame: false
  });
   win.loadFile("index.html");
};
frame:true
frame:false

 当frame:false时

  • 窗口不能拖动
  • 没有标题

用css解决窗口拖动方案

<style>
    html{
        height: 100%;
        user-select: none; //注意:使用这个之后不能使用其他控件、不能选中文本
        -webkit-app-region:drag;
      }
</style>

但是这时存在一些小bug,当我们想拖动滑动条时,还是拖拽的窗口。

input{
    -webkit-app-region:no-drag;
}

在你想拖拽的元素添加no-drag属性,就可以解决啦!

electron-win-state 保存窗口的状态

当用户拖拽窗口大小或位置,关闭应用后不会保留的;如果我们需要保存窗口状态可以试试下面插件

npm i electron-win-state   
const WinState=require('electron-win-state').default; 

const winState=new WinState({
  //初始化宽高
  defaultWidth:800, 
  defaultHeight:600,
})
const createWindow = () => {
  const win = new BrowserWindow({
    ...winState.winOptions, 
    //在这里定义的宽高位置都要删掉哦!
    // width: 1000,
    // height: 600,
    // x:100,
    // y:100,
    backgroundColor:'black',
  });
   win.loadFile("index.html");
   winState.manage(win);//在函数最下方写入
};

require('xxx').default

第一次接触这个有点疑惑,不明白什么意思,举个例子

//导出接口


export default function() {}
// 等效于:
function a() {};
export {a as default}; //意思是把a函数导出去

import、require、export、module.exports 混合使用详解_import module.exports-CSDN博客

did-finish-load 外部资源加载完毕,dom-ready DOM加载完毕

const wc = win.webContents;
wc.on("did-finish-load", () => {
  console.log("外部资源加载完毕");
});
wc.on("dom-ready", () => {
  console.log("DOM 加载完毕");
});

new-window

<div>
  <a target="_blank" href="https://placekitten.com/500/500"><h3>Kitten</h3></a>
</div>
<script>
wc.on('new-window', (e, url) => {
  e.preventDefault()
  console.log('DOM Ready')
})
</script>

context-menu : 右键上下文信息 

只要用户点击右键,我们就可以做一些操作

wc.on('context-menu', (e, params) => {
  console.log(`Context menu opened on: ${params.mediaType} at x:${params.x}, y:${params.y}`)
})

wc.on('context-menu', (e, params) => {
  console.log(`User seleted text: ${params.selectionText}`)
  console.log(`Selection can be copied: ${params.editFlags.canCopy}`)
})

executeJavaScript()

往页面中注入js

wc.on('context-menu', (e, params) => {
  //当我们点击右键时,往页面中注入一段js,表示我们选中的内容
  wc.executeJavaScript(`alert('${params.selectionText}')`)
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/259711.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VueCron使用方法

1&#xff09;什么是vueCron Vue Cron 是基于 Vue.js 的定时任务管理组件&#xff0c;它提供了一种简单易用的方式来设定和管理定时任务。Vue Cron 提供了一个类似于 Linux crontab 的界面&#xff0c;用户可以通过它来创建、编辑和删除定时任务。 2&#xff09;安装依赖及应…

FreeCodeCamp--数千免费编程入门教程,非盈利性网站,质量高且支持中文

在浏览话题“Github上获得Star最多的项目”时&#xff0c;看到了FreeCodeCamp&#xff0c;顾名思义--免费编程营地&#xff0c;于是就做了些调研&#xff0c;了解了下这是个什么项目 这是一个致力于推动编程教育的非营利性组织&#xff0c;团队由来自世界各地的杰出的技术开发…

如何将图片转为PDF

问题描述&#xff1a;如何将图片转为PDF&#xff0c;有时需要将纸质文档扫描成PDF&#xff0c;然后上传到网上。 解决办法&#xff1a;平时使用的方法是将图片插入到word文件中&#xff0c;然后将图片设置为浮于文字下方&#xff0c;然后调整图片的大小&#xff0c;铺满整个wo…

SMART PLC MODBUS-RTU通信(多台同一设备通信优化写法)

MODBUS通信基础介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/133755924https://rxxw-control.blog.csdn.net/article/details/133755924多台同一设备的MODBUS-RTU通信,我们在编写轮询程序的时候,可以采用站号变址的方式实现。 1、轮询状态…

[Linux] Haproxy负载均衡集群

一、Haproxy知识 1.1 常用的负载均衡调度器 软件通常使用开源的LVS、Haproxy、 Nginx LVS性能最好&#xff0c;但是搭建相对复杂&#xff1b;Nginx 的upstream模块支持群集功能&#xff0c;但是对群集节点健康检查功能不强&#xff0c;高并发性能没有Haproxy好。 硬件一般使用…

java中常用的加密算法总结

目前在工作中常用到加密的一些场景&#xff0c;比如密码加密&#xff0c;数据加密&#xff0c;接口参数加密等&#xff0c;故通过本文总结以下常见的加密算法。 1. 对称加密算法 对称加密算法使用相同的密钥进行加密和解密。在Java中&#xff0c;常见的对称加密算法包括&…

2023_Spark_实验三十二:消费Kafka数据并保存到MySQL中

实验目的&#xff1a;掌握Scala开发工具消费Kafka数据&#xff0c;并将结果保存到关系型数据库中 实验方法&#xff1a;消费Kafka数据保存到MySQL中 实验步骤&#xff1a; 一、创建Job_ClickData_Process 代码如下&#xff1a; package examsimport org.apache.kafka.clien…

阶段十-springsecurity总结

jwt认证流程 SpringSecurity 认证过程 第一步&#xff1a; 创建一个类实现UserDetailsService接口&#xff0c;重写其中的方法 通过重写 public UserDetails loadUserByUsername(String username) 方法 从数据库校验用户输入的用户名 配置SecurityConfig Bean注入 Passwor…

【C++题目速刷】二分查找

【C题目速刷】二分查找 一、二分查找1、题目链接2、解题3、代码 二、在排序数组中查找元素的第一个和最后一个位置1、题目链接2、解题3、代码4、算法模板 三、x的平方根1、解题链接2、解题3、代码 四、搜索插入位置1、题目链接2、解题3、代码 五、山脉数组的峰顶索引1、题目链接…

论文解读:On the Integration of Self-Attention and Convolution

自注意力机制与卷积结合&#xff1a;On the Integration of Self-Attention and Convolution(CVPR2022) 引言 1&#xff1a;卷积可以接受比较大的图片的&#xff0c;但自注意力机制如果图片特别大的话&#xff0c;运算规模会特别大&#xff0c;即上图中右边(卷积)会算得比较快…

虾皮电商申请:一站式开店指南

随着跨境电商的快速发展&#xff0c;越来越多的商家开始意识到东南亚市场的潜力。虾皮电商&#xff08;Shopee&#xff09;作为东南亚地区最大的电商平台之一&#xff0c;为商家提供了一个开拓市场的机会。本文将详细介绍如何在虾皮电商平台上开店&#xff0c;并给出一些建议来…

Kioptrix-1

信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-18 20:02 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00025s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 0bc…

听GPT 讲Rust源代码--src/tools(17)

File: rust/src/tools/rust-analyzer/crates/profile/src/hprof.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/profile/src/hprof.rs文件是rust-analyzer中的性能分析模块&#xff0c;用于代码运行时的性能统计和分析。下面将详细介绍每个结构体的作用&a…

基于DSP的IIR数字滤波器(论文+源码)

1.系统设计 在本次基于DSP的IIR数字低通滤波计中&#xff0c;拟以TMS320F28335来作为系统的主控制器&#xff0c;通过ADC0832模数转换芯片来对输入信号进行采集&#xff1b;通过TLC5615来将低通滤波后的信号进行输出&#xff1b;同时结合MATLAB仿真软件&#xff0c;对设计的II…

2023美团商家信息

2023美团商家电话、地址、经纬度、评分、均价、执照...

排序算法——快排

快速排序算法最早是由图灵奖获得者Tony Hoare设计出来的,他在形式化方法理论以 及ALGOL.60编程语言的发明中都有卓越的贡献,是20世纪最伟大的计算机科学家之—。 而这快速排序算法只是他众多贡献中的—个小发明而已。 快速排序&#xff08;Quick Sort&#xff09;的基本算法思…

SpringBoot3知识总结

SpringBoot3 1、简介 1. 前置知识 Java17Spring、SpringMVC、MyBatisMaven、IDEA 2. 环境要求 环境&工具版本&#xff08;or later&#xff09;SpringBoot3.0.5IDEA2022Java17Maven3.5 3. SpringBoot是什么 Spring Boot是Spring项目中的一个子工程&#xff0c;与我们…

四、Spring IoC实践和应用(基于XML配置方式组件管理)

本章概要 基于XML配置方式组件管理 实验一&#xff1a; 组件&#xff08;Bean&#xff09;信息声明配置&#xff08;IoC&#xff09;实验二&#xff1a; 组件&#xff08;Bean&#xff09;依赖注入配置&#xff08;DI&#xff09;实验三&#xff1a; IoC 容器创建和使用实验四…

Hive参数操作和运行方式

Hive参数操作和运行方式 1、Hive参数操作 1、hive参数介绍 ​ hive当中的参数、变量都是以命名空间开头的&#xff0c;详情如下表所示&#xff1a; 命名空间读写权限含义hiveconf可读写hive-site.xml当中的各配置变量例&#xff1a;hive --hiveconf hive.cli.print.headert…

基于SpringBoot+Vue的小区物业管理系统

基于SpringBootVue的小区物业管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 房屋类型 论坛 登录界面 管理员界面 员工界面 摘要 小区物业管理系统是一个…
最新文章