【发布时间】:2018-04-20 09:57:30
【问题描述】:
我正在试用 Electron 框架。我试图废弃 mainWindow,然后将返回的结果放在另一个窗口中。 我正在使用下面的代码(不包括窗口初始化等不必要的代码)
contents = mainWindow.webContents
contents.on('dom-ready', analyze)
function analyze() {
contents.executeJavaScript('scrap()').then((result) => {
message = result.join('\n')
console.log(message)
notify_window.webContents.openDevTools()
notify_window.webContents.executeJavaScript("console.log('test');$('#html').html(message);")
})
}
问题是,非常不一致。
1.有时它会执行具有notify_window.webContents.executeJavaScript 的行,有时它不会。
当它执行该行时,它会在窗口控制台中打印test,并在其下方显示错误message is undefined。我每次都可以在电子控制台中从console.log(message) 行看到message 的值,所以我不明白为什么当我尝试将message 放入元素时未定义。
- 有时它不执行
notify_window.webContents.executeJavaScript,这意味着我在notify_window中看不到任何控制台语句或错误,但当时它执行该函数内的所有其他行,因为我看到电子日志并打开开发工具。这里发生了什么?
我很困惑 NodeJS 是这样工作的,还是由于 Promise,第一个 executeJavaScript 返回还是 Electron 的行为?
【问题讨论】:
标签: javascript electron