javascript - 如何从脚本中检查 Electron 应用程序的 DOM?

标签 javascript node.js electron

我的计算机 (Slack) 上运行着一个 Electron 应用程序。我想运行一些 JavaScript 来读取这个应用程序的 HTML DOM。这可能吗?如果是这样,某处是否有“入门”?

在我看来,由于 Electron 使用 Node.js 来托管 HTML/JavaScript,我可能可以读取 DOM。同时,我可以看到这是不允许的,因为它可能存在安全风险。我可以接受安全风险,因为它在我的机器上运行。所以,我假设会有一个 UAC 提示。尽管如此,我只是想弄清楚如何在可能的情况下从外部脚本读取 DOM。

谢谢

最佳答案

据我了解,您想检查或操作已安装的 Electron 应用程序的某些 HTML?

这就是我以 Slack 为例想出如何访问(在 Mac OS 上)的方法:

  1. 转到您的应用程序文件夹 -> Slack -> 右键单击​​“显示包内容”
  2. 转到“内容->资源-> app.asar.unpacked”
  3. 您可以查看 slack 应用程序的某些部分如何工作。

我也尝试过使用 GChat 应用程序,它们有一个 app 文件夹。从技术上讲,您可以将脚本或其他内容添加到 index.html/index.jade (slack) 中并劫持到 main.js 或 index.js 脚本中。

例如,我能够在 Google Chat 的聊天应用程序中搜索 BrowserWindow 对象并轻松添加 .webContents.openDevTools();

然而,任何解决方案都涉及手动工作。

比如我在GChat的main.js中美化了代码,我搜索了Electron的方法buildFromTemplate,找到了View的具体函数 菜单已创建。我只是添加了以下内容

 {
          role: "toggledevtools",
          label: "Toogle Dev Tools"
        }

最后我能够轻松地切换开发工具(如屏幕截图所示)

enter image description here

关于javascript - 如何从脚本中检查 Electron 应用程序的 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765540/

相关文章:

node.js - gulp-concat 抛出异常 'file.isNull(),index.js :39 TypeError: file. isNull 不是函数

javascript - node.js、backbone、socket io 和 express 以及 coffeescript 都可以一起使用吗?

javascript - Hook 到 Electron 中的 console.log

chromium - Electron ( Chrome )禁用网络安全

javascript - Diagnosing Uncaught TypeError : __webpack_require__(. ..).createServer 不是函数?

javascript - 在FullCalendar dayClick事件中,能否获取点击日期已经存在的事件?

javascript - ng-change 工作不正确吗?

node.js - Mongoose 验证未调用

javascript - Electron 桌面应用程序的表单操作提交

javascript - 故障排除 : D3 line transition is really jerky. 需要remove()?