[英]variable undefined inside electron executeJavascript
我正在尝试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.Sometime它执行具有线notify_window.webContents.executeJavaScript
,有时候没有。 当执行该行时,它将在窗口控制台中打印test
,并在其下方显示错误message is undefined
, message is undefined
。 我每次都可以从console.log(message)
行中的电子控制台中看到message
的值,因此当我尝试将message
放入元素中时,我不明白为什么未定义message
。
notify_window.webContents.executeJavaScript
,这意味着我在notify_window
不到任何控制台语句或错误,但是由于它看到了电子登录并打开了DevTools,因此它执行了该函数内的所有其他行。 这是怎么回事? 如果这是NodeJS的工作方式或者是由于Promise导致的,则我很困惑,首先executeJavaScript
返回还是Electron的行为?
您在executeJavascript中将“消息”作为变量名传递,而不是在文件中作为变量传递,这就是未定义它的原因。
如果要发送正在使用的真实“消息”,则必须使用:
notify_window.webContents.executeJavaScript("console.log('test');$('#html').html('"+message+"');")
奇怪的行为可能是由错误后报告错误之前的Java代码损坏引起的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.