executeJavaScript没有给出错误,但不会执行代码

时间:2018-07-18 16:00:31

标签: javascript node.js electron

好的,据我所知,这应该执行我的渲染器进程内=IF(C4="Seminar",3,IF(C4="Lecture",5,1))*I4中指定的代码。当我仅包含一个要执行的executeJavaScript()时,一切运行正常,并且在开发人员控制台中看到了输出。然后我的问题是,什么原因可能导致此操作无法执行?我尝试在条件之外添加console.log(),但在开发人员控制台中仍然没有任何显示。更重要的是,我会在哪里插入console.log()错误,告诉我有一个未知的标识符。

在不发布我的项目其余部分的情况下,我对该功能的理解是否明显有错误或破裂?看来应该很简单。

console.log()

1 个答案:

答案 0 :(得分:0)

您应该在DOM准备就绪(即'dom-ready')时调用此方法

const {app, BrowserWindow} = require('electron')
const path = require('path')

let mainWindow = null
app.once('ready', () => {
  mainWindow = new BrowserWindow({})
  const executeOnHTML = () => {
    mainWindow.webContents.executeJavaScript(`
      document.getElementById('minimize-button').addEventListener('click', function (e) {
        const { remote } = require('electron')
        var window = remote.BrowserWindow.getFocusedWindow()
        window.minimize()
      })
    `)
  }
  mainWindow.webContents.once('dom-ready', executeOnHTML)
  mainWindow.loadURL(path.join(__dirname, 'index.html'))
})

此外,有很多不同的方法可以执行相同操作,而不是将所有内容都放在一个文件中。

  • 您可以在从HTML(<script src=...>)引用的js中定义HTML行为
  • 您可以使用IPC在Main和Renderer进程之间进行通信

我还建议您阅读有关electron's Processes