当前位置: 首页 > 知识库问答 >
问题:

如何将数据从main.js发送到index.html(电子)

濮俭
2023-03-14

正如大家所知,我是JavaScript和Electron的完全初学者。

我想我已经找过大多数地方了,但我什么也没找到。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>??</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <div class="main">
        <button id="get-data" type="submit">Get Data</button>
    </div>

    <script src="script.js"></script>
</body>

</html>
const { app, BrowserWindow } = require("electron");
const ipc = require("electron").ipcMain;

app.whenReady().then(() => {
    const window = new BrowserWindow({
        "center": true,
        "width": 500,
        "height": 800,
        "webPreferences": {
            "nodeIntegration": true
        }
    });
    window.loadFile("index.html");
});

ipc.on("uhhm", event => {
    event.sender.send("ok", "Hello World!");
});
const ipc = require("electron").ipcRenderer;
const getDataBtn = document.getElementById("get-data");

getDataBtn.addEventListener("click", () => {
    ipc.send("uhhm");
    ipc.once("ok", data => {
        getDataBtn.innerHTML = "Moving On... " + data;
    });
});
Uncaught ReferenceError: require is not defined
    at script.js:1

IDK怎么办

有什么建议吗?

共有2个答案

施誉
2023-03-14

当我在电子框架工作了一段时间后,我遇到了这个问题,在那里我需要渲染器进程和主进程之间的IPC通信。渲染器进程位于脚本标记之间的超文本标记语言文件中,并生成相同的错误。

const {ipcRenderer} = require('electron')
//throws the Uncaught ReferenceError: require is not defined

就你而言:


const ipc = require("electron").ipcRenderer;

当浏览器窗口(嵌入此超文本标记语言文件的地方)最初在主进程中创建时,您必须通过指定Node.js集成为true来解决这个问题。

function createWindow() {

    // Create a new window
   const window = new BrowserWindow({
        width: 300,
        height: 200,

        // The lines below solved the issue
        webPreferences: {
            nodeIntegration: true
        }
})}

这为我解决了问题。这里提出了解决方案。

徐卓
2023-03-14

如果您使用的是

app.on('ready', () => {
    mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true,
            contextIsolation: false,
        }
    });
});
 类似资料:
  • 问题内容: 我是Rails和Web开发的新手。 我正在Matlab中生成一堆对象,我想将这些对象发送到我的Rails应用程序中的数据库中。谁能建议我该怎么做? 到目前为止,在Rails端,我已经为数据生成了基本的支架。我可以使用“ / myobjects / new”中的表单将对象添加到数据库中。 在Matlab端,我一直在尝试使用HTTP POST请求添加对象,如下所示: 这将失败,并将以下内容

  • 我有一个片段,它打开一个对话框fragment来获取用户输入(一个字符串和一个整数)。我该如何将这两样东西送回碎片? 这是我的对话片段: 我需要在单击按钮之后和 以下是数据需要发送到的片段: 因此,一旦用户在Dialogfragment中选择日期,它必须返回月份和年份。 然后,按钮上的文本应更改为用户指定的月份和年份。

  • 问题内容: 我正在做一个示例项目,其中我想将数据从iPhone发送到WatchKit。我不知道该怎么做。任何帮助将不胜感激。提前致谢 问题答案: 在AppDelegate中添加以下方法: 将此添加到Apple Watch Extension中的任何位置: 第一个函数将使用触发并回复参数中的字典。 开发人员论坛: https : //devforums.apple.com/message/10826

  • 问题内容: 我有一个在我和它是一个连接到。当我单击时,我想说“ 单击按钮”。 这可能吗? 我知道两个连接到同一对象的对象可以轻松地相互通信并相互发送数据。但是对象可以将数据发送到对象中吗 编写自己的程序并将其附加到程序上是更好的编程吗?然后,我可以简单地让两个片段相互发送数据。 抱歉,如果这不是StackOverflow的正确类型。我是新手,因此无法在此问题上找到清晰的解释。 提前致谢! 问题答案

  • 问题内容: 我正在使用Flask创建一个网站,并且希望能够使用页面中的数据执行python代码。我知道我可以简单地使用表单,但是它是一个页面,它在接收用户输入时会不断更新,并且每次发生任何事情时都要重新加载页面,这是一个很大的麻烦。我知道我可以在javascript内执行操作,但是如何使用js变量在javascript内执行操作?到目前为止,我唯一能想到的就是用js更新外部数据库(如MongoDB

  • 问题内容: 我想使用Android将数据发送到我的php页面。我该怎么做? 问题答案: 您可以使用AndroidHttpClient进行GET或POST请求: 创建一个AndroidHttpClient来执行您的请求。 创建一个HttpGet或HttpPost请求。 使用setEntity和setHeader]方法填充请求。 对您的请求使用客户端上的execute方法之一。