A BrowserWindow's preload script runs in a context that has access to both the HTML DOM and a limited subset of Node.js and Electron APIs.
请问下
1.Electron中 preload.js 是否可以认为就只有在 BrowserWindow 这里使用到?
2.这里的权限指的是 完全 HTML DOM 权限 + 部分node.js + 部分Electron API
还是 完全 HTML DOM 权限 + 部分node.js + 完全Electron API
?
3.部分的话,具体是哪些权限呢?
首先官方对于
preload
的解释链接在这Preload 脚本Electron中 preload.js 是否可以认为就只有在 BrowserWindow 这里使用到?
官方文档的解释如下⬇️⬇️
结合以上的两点官方的解释,可以理解为只在
BrowserWindow
中使用。这里的权限指的是 完全 HTML DOM 权限 + 部分node.js + 部分Electron API 还是 完全 HTML DOM 权限 + 部分node.js + 完全Electron API? 部分的话,具体是哪些权限呢?
你这个问题我不是很明白你有什么需求下你会有这种问题?
我说说我对于这个
preload.js
的理解吧。本质上这个脚本你可以理解为你项目中的一个类似于油猴插件注入的一个脚本。它的优先级很高,它和你本身的网页项目共用一个window对象,它的window对象和网页的window可能会有属性冲突。给予以上官方的解释,它应该是可以访问所有node的api。想想node后端能干嘛它也就能干嘛,但是我觉得它毕竟运行在electron这个容器中,所以类似于读取文件什么的估计还是得依赖electron的api来操作。你可以把electron作为一个小型虚拟机,只安装了一个node和chrome浏览器。如果透过这个模拟器来操作计算机上的东西得使用electron提供的方法。至于HTML DOM 权限估计拿不到,因为这个脚本是在页面安全加载之前注入的。
拙见 拙见