簡體   English   中英

電子executeJavascript內部未定義的變量

[英]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 undefinedmessage is undefined 我每次都可以從console.log(message)行中的電子控制台中看到message的值,因此當我嘗試將message放入元素中時,我不明白為什么未定義message

  1. 有時,它不執行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM