我想在我的 Electron 应用程序中嵌入一个 HTML 文件。我选择使用 iframe,但是 - 当我这样做时 - 似乎我不能再使用 node.js。任何使用 require("electron") 的尝试都将表明 require 未定义。有什么想法吗?
提前致谢!
- 斯蒂恩
最佳答案
如果您不介意迟到,您可能应该使用 <webview>
,因为它可以让您对所需内容进行更细粒度的控制。
但是,如果您确实需要使用 <iframe>
,你有两个选择:
- 使用parent.require(父级访问iframe父级,它应该是您的窗口)
- 在加载事件中,将父窗口的 require 复制到 iframe 中:
iframe.onload = function () {
const iframeWin = iframe.contentWindow
iframeWin.require = window.require
})
唯一的“缺点”是您包含的包将访问主窗口 DOM 而不是 iframe 的 DOM,这意味着 iframe 窗口全局变量都不存在,更重要的是,文档将访问窗口 DOM ( querySelector 和 getElemementBy 方法实际上不起作用)。这对您来说是否是一个问题取决于您如何组织代码,祝您好运
关于node.js - Electron iframe : require is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255773/