为什么这些 console.log 语句不起作用?电子

lyl*_*son 4 javascript electron

我想在这里测试一些东西。

我正在使用电子和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())
    }
})
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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

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

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

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

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