Electron为网页注入js预加载

准备工作

首先我下载了一个 electron-quick-start 并安装 node.js
找到一个网页,我选择的是一个快速制作插画的网站 Picrew

main.js

  1. 在main.js里可以修改弹窗的各种属性,我们需要的是
function createWindow () {
   
const mainWindow = new BrowserWindow({
   
    webPreferences: {
   
      preload: path.join(__dirname, 'preload.js'),
    }
  })

webPreferences里的preload属性,path引入的__dirname就是根目录,preload.js就是文件名,改别的名字这里也得对应着改。

  1. 下面就加载我需要的网页
mainWindow.loadURL('https://picrew.me/image_maker/37328')
}

preload.js

  1. 加入自己想要的功能,我这里添了几个按钮
window.onload = function () {
   
  let image_maker = document.querySelector('#image-maker');
  let clearcanvas = document.createElement("div");
  clearcanvas.innerText = "清空画板";
  clearcanvas.style = "box-sizing:border-box;line-height:40px;position:absolute;top:60px;left:10px;width:100px;height:40px;border-radius:20px;background-color:#abf;text-align:center;cursor: pointer;font-weight: 700;-webkit-user-select: none;";
  image_maker.appendChild(clearcanvas);
  // .....
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Electron 中可以使用脚本来在渲染进程运行之前执行一些操作,例如某些模块或设置全局变量。脚本的代码可以在主进程中执行,也可以在单独的 JS 文件中编写,然后在 `BrowserWindow` 中指定。 以下是一个使用脚本的例子: 在主进程中: ```javascript const { app, BrowserWindow } = require('electron') const path = require('path') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') // 指定脚本 } }) // 应用程序主页面 win.loadFile('index.html') } app.whenReady().then(() => { createWindow() app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow() } }) }) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) ``` 在 `BrowserWindow` 的 `webPreferences` 中指定了脚本的路径,它会在渲染进程运行之前并执行。在本例中,脚本为 `preload.js`。 在 `preload.js` 文件中,可以编写一些代码来执行一些操作。例如,可以在其中 Node.js 模块或设置全局变量。以下是一个简单的例子: ```javascript const { remote } = require('electron') window.addEventListener('DOMContentLoaded', () => { const currentWindow = remote.getCurrentWindow() currentWindow.setTitle('My App') // 设置窗口标题 }) ``` 在本例中,我们使用 `remote` 模块获取当前窗口,并设置窗口标题为 "My App"。 需要注意的是,脚本中的代码可以访问 Node.js 的 API,但不能访问渲染进程的 DOM。如果需要与渲染进程进行通信,可以使用 Electron 的 IPC 功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值