webContents 未定义错误。如何修复?

问题描述 投票:0回答:1

我是一个初学者编码器,不太好,所以请不要介意我的代码,我正在尝试在电子js中创建一个应用程序,打开一个图像文件并将其显示在应用程序中。我必须从主进程发送一条消息,所以我使用 webContents.send 但是,我遇到了一个错误,说明了这一点

(节点:11908)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性(读取“webContents”)

有人可以告诉我如何修复这个错误吗?

main.js(主进程):


const {app, BrowserWindow, ipcMain, dialog, globalShortcut, ipcRenderer, mainWindow, webContents}=require('electron')
const path=require('path')
const fs = require('fs')
function creatWindow(){
    const title='hello'
    const content='hi hello'
    const win= new BrowserWindow({
        height:768,
        width:1366,
        title:"Ahmad's Website",
        webPreferences:{
            preload: path.join(__dirname,'preload.js')},
            nodeIntegration: true,
            webviewTag: true
    });
    win.loadFile('src/index.html')
    win.maximize()
    ipcMain.on('upload', (event)=>{
        dialog.showOpenDialog().then((result)=>{
            c=String(result.filePaths)
            f=c.replace('['/']','')
            console.log(f)
            mainWindow.webContents.send('uploadfile',f)
            
            
        })
    })
};
app.whenReady().then(creatWindow);

preload.js(预加载脚本)

const {contextBridge, ipcRenderer}= require('electron');

window.addEventListener('DOMContentLoaded',()=>{
    const upload_fl=document.getElementById('upload')
    upload_fl.addEventListener('click', ()=>{
        ipcRenderer.send('upload')
        ipcRenderer.on('uploadfile', (event,value)=>{
            const path1=value
            document.getElementById('img').src=path1


        })
    })
})

index.html(应用程序索引页)

<!DOCTYPE html>
<html>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial scale=1">
    <head>
    <style>
        
    </style>
    <script src="script.js"></script>
    <title>my app</title>
    </head>
    <body>
        <h1 id="h1c">HELLO I AM AHMAD</h1> first input is name of file. and the second input is the content
      
        <button id="upload">Upload</button>
        <br><br>
        <img id="img" src="" alt="">
        
    </body>
</html>

我花了大约两三天的时间试图寻找答案。 Stackoverflow 上还有另一个问题,但情况不同,我尝试了解决方案,但没有成功

javascript html electron
1个回答
0
投票

感谢@Arkellys,我得到了答案

@Arkellys=> 'Electron 不导出任何 mainWindow,这只是用于主窗口的公共变量名称。你命名你的胜利'

© www.soinside.com 2019 - 2024. All rights reserved.