【问题标题】:Why are these console.log statements not working? Electron为什么这些 console.log 语句不起作用?电子
【发布时间】:2018-09-26 17:23:19
【问题描述】:

我正在尝试在这里测试一些东西。

我正在使用电子和 javascript。当用户选择它时,我正在尝试将配置文件加载到页面中。我的控制台日志语句都没有显示在控制台中,但是当用户进行“profileSelect”更改事件时,值会正确加载。我正在测试它的原因是因为我正在尝试向该文件添加一个附加项,选中一个复选框(它也不起作用)。

profileSelect.change(function(event) {
    //If the value isn't null
    console.log('yo')
    if (profileSelect.val() == '') {
        clearBilling();
    } else {
        ipcRenderer.once(profileSelect.val() + 'profileData', function(event, data) {
            //Return card to style it was first added like
            console.log('sshi')
            //This allows us to parse the data on profile save
            const cardParse = String(data.card.number).match(/.{3,4}/g).join(' ')
            const dateParse = String(data.card.month) + ' / ' + String(data.card.year);
            profileName.val(profileSelect.val());
            billingFirstName.val(data.billing.firstName);
            billingLastName.val(data.billing.lastName);
            billingAddress1.val(data.billing.address1);
            billingAddress2.val(data.billing.address2);
            billingCity.val(data.billing.city);
            billingState.val(data.billing.state);
            billingZipcode.val(data.billing.zipcode);
            billingCountry.val(data.billing.country);
            billingPhone.val(data.billing.phone);
            billingEmail.val(data.email);
            shippingFirstName.val(data.shipping.firstName);
            shippingLastName.val(data.shipping.lastName);
            shippingAddress1.val(data.shipping.address1);
            shippingAddress2.val(data.shipping.address2);
            shippingCity.val(data.shipping.city);
            shippingState.val(data.shipping.state);
            shippingZipcode.val(data.shipping.zipcode);
            shippingCountry.val(data.shipping.country);
            shippingPhone.val(data.shipping.phone);
            cardName.val(data.card.name);
            cardNumber.val(cardParse);
            cardCVV.val(data.card.code);
            cardExpire.val(dateParse);
        })
        //Send the selected profile
        ipcRenderer.send('requestProfile', profileSelect.val())
    }
})

为什么控制台日志语句不记录?感谢您的任何意见:)

【问题讨论】:

  • 您在看哪个控制台?上次我使用电子时,我记得显示了命令控制台窗口,以及“浏览器”视图本身的开发工具。应用程序的不同部分写入相应的控制台。你都检查了吗?
  • 查看电子窗口内的源代码检查器并逐步执行代码以查看正在运行的内容
  • @BryanGrezeszak 是的,我经常与 Electron 合作。它应该显示在开发工具控制台中。也不显示
  • 你的应用有 webview 吗?如果是这样,您是从window.webContents.openDevTools() 还是...webview.openDevTools() 查看devtools 控制台?确保您没有意外查看错误的开发工具。其次,确保您的开发工具上没有任何过滤器。

标签: javascript electron


【解决方案1】:

Electron 有 2 个进程,因此有 2 个控制台。这2个进程是main和renderer,main是node.js进程,renderer是浏览器进程。

主进程console.log 将显示在终端(如果在 dev 中运行)或浏览器控制台窗口中(如果在渲染器进程中)。

您似乎正在按照ipcRenderer 语句从渲染器进程进行日志记录。

渲染器控制台可以通过标准的 chrome devtools 快捷方式显示(因为它正在运行一个 chrome 实例)(通常是 F12)

您将无法在 main 中的渲染器或渲染器中的 main 中看到任何控制台语句。

【讨论】:

  • 阅读问题cmets。在您回答之前,OP 已经涵盖了这种可能性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
相关资源
最近更新 更多