使用
preload
属性【在页面运行其他脚本之前预先加载指定的脚本】。举例如下:
main.js:
mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
webSecurity: true,
preload: path.resolve(path.join(__dirname, 'source/preload.js'))
width: 900,
height: 900
mainWindow.loadURL("https://open.weixin.qq.com");
在项目目录的source
目录中新建preload.js
其中代码如下:
const path = require('path')
document.addEventListener("DOMNodeInserted", function(event) {
if (!!window && !(!!window.$)) {
window.$ = window.jQuery = require(path.join(__dirname, 'jquery.js'));
在source
目录中放一份jquery.js
使用 preload 属性【在页面运行其他脚本之前预先加载指定的脚本】。举例如下:main.js:mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: true, webSecurity: true, preload: path.resolve(path.join(__...
第一个方案决定使用 iframe 加载第三方 web 登录网址。但是发现当页面点击登录重定向到二级过度登录页面时,会报跨域的错误。
于是决定尝试使用 webview 来内嵌这个第三方登录页面。
electron : 10.0.1
vue : 2.5.16
1、在主进程里需要允许主窗口使用 webviewTag:
const win = new Browser({
webPreferences: {
在使用electron进行开发客户端,把electron作为浏览器加载带有jquery(cdn)的页面时,提示“$或者jQuery不能够识别。
初始使用的jquery。2.2版本,出现了如上问题。
查看源代码能够发现,jquery如果能够识别module的时候,会降$,jQuery直接给了module。在一些常用的浏览器里面会直接给了window对象。由于前者的优先级...
Electron默认启用了Node.js的require模块,而jQuery等新版本框架为了支持commondJS标准,当Window中存在require时,会启用模块引入的方式,导致报错 Uncaught ReferenceError: $ is not defined,本文研究了高低版本jQuery引入的正确方式。
1. 报错原因
Elect...
Electron 浏览器窗口的开发工具 devtools 只能调试在该窗口中执行的 JavaScript(比如 web 页面)。要调试在主进程中执行的 JavaScript,我们需要使用外部调试器。Electron 提供了 --inspect 和 --inspect-brk 开关来实现这一操作。
命令行开关
我们可以使用如下的命令行开关来调试 Electron 的主进程。
--inspect=[port] :当这个开关用于 Electron 时,它将会监听 V8 引擎中有关 port 的调试器协议信息,默
有朋友可能会好奇,既然electron的前端代码和web网页端的代码看起来大概是一样的,那应该是web端怎么写第三方登录,electron就怎么写。
但是实际上electron的前端环境和web端有很大差异,比如集成了node环境和electron自带很多的原生能力。而笔者在写electron端的第三方登录时,也遇到了一个关键的问题,导致完成这个功能居然花了2天时间,故特此记录作为以后使用的一个参考。
遇到的问题
前言中提到的关键
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
3. 在查询数据时使用 utf8mb4 字符集,如下所示:
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'database',
charset: 'utf8mb4'
connection.query('SELECT * FROM `table`', function(err, results, fields) {
if (err) throw err;
console.log(results);
通过以上方法,可以解决 Electron 中连接 MySQL 数据库中文乱码问题。
CSDN-Ada助手:
electron-builder打包导致的worker_thread子进程无法执行的问题
hellomenya123:
Aliplayer中自定义添加字幕的实现
请叫我宝哥、:
MAXScript语法及命令
hadeler:
axios踩坑记录-post请求,参数放在body中时,报错Content type
MrLiber: