使用 Docker 搭建,浏览器访问出现:fetch post error ReferenceError: ipcRenderer is not defined

本贴最后更新于 437 天前,其中的信息可能已经时移世易

使用 Docker 搭建,浏览器访问出现:fetch post error ReferenceError: ipcRenderer is not defined

错误截图:

QQ 截图 20240501233221.png


错误代码如下:

main.88649b38368b4e2ea292.js:3314 fetch post error ReferenceError: ipcRenderer is not defined at Rs (main.88649b38368b4e2ea292.js:6068:22165) at oL (main.88649b38368b4e2ea292.js:6068:24088) at main.88649b38368b4e2ea292.js:6068:28842 at main.88649b38368b4e2ea292.js:3314:3432 (匿名) @ main.88649b38368b4e2ea292.js:3314 Promise.catch(异步) L @ main.88649b38368b4e2ea292.js:3314 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:3314 Promise.then(异步) lf @ main.88649b38368b4e2ea292.js:3314 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:9 (匿名) @ main.88649b38368b4e2ea292.js:3314 Promise.then(异步) L @ main.88649b38368b4e2ea292.js:3314 ki @ main.88649b38368b4e2ea292.js:9 (匿名) @ main.88649b38368b4e2ea292.js:6068 s @ main.88649b38368b4e2ea292.js:6068 Promise.then(异步) l @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068 cL @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:3314 Promise.then(异步) L @ main.88649b38368b4e2ea292.js:3314 dL @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068 (匿名) @ main.88649b38368b4e2ea292.js:6068

郁闷了,一直以为是 Docker 搭建有问题,结果手机打开测试一下,发现是浏览器问题,ChatGPT 回答如下:

在浏览器中无法直接开启支持 Electron 的 IPC(进程间通信)模块,因为浏览器和 Electron 是两种不同的环境,浏览器不具备 Electron 的这些特定功能。Electron 是一个基于 Chromium 和 Node.js 的框架,它允许您使用 Node.js 模块和 Electron API 来构建桌面应用程序。

如果您的代码需要在浏览器和 Electron 环境下都能正常运行,通常需要进行一些条件判断和代码调整,以便在不同环境下使用不同的功能或模块。

下面是一种常见的做法,可以帮助您在浏览器环境下模拟简单的 IPC 通信:

  1. 使用 Web APIs: 在浏览器环境下,您可以使用 Web APIs 来进行类似于 IPC 的通信,比如使用 window.postMessage() 方法进行跨窗口通信。
  2. 模拟 IPC: 您可以编写自定义的通信层,模拟 Electron 中的 IPC 功能。例如,可以通过 WebSocket 或者基于服务器的消息传递来实现进程间通信。
  3. 条件判断: 在代码中进行环境检测,根据当前环境选择是否使用特定的模块或功能,如前面提到的示例代码片段。

总的来说,要在浏览器中模拟 Electron 的 IPC 功能,您需要重新设计您的代码逻辑,使用浏览器环境下可用的替代方案来实现您的需求。如果您有特定的需求或代码示例,欢迎分享,我将尽力提供更具体的帮助和建议。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26324 引用 • 109443 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    10123 引用 • 45983 回帖 • 63 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 53 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖
  • OnlyOffice
    4 引用 • 17 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 684 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖 • 2 关注
  • OneDrive
    2 引用 • 3 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 36 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 1 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 2 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 103 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 367 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 5 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 6 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖 • 2 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    32 引用 • 108 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 4 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 239 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 1 关注
  • 996
    13 引用 • 200 回帖 • 1 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 656 关注