[英]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.