node.js - Electron iframe : require is not defined

标签 node.js iframe electron require

我想在我的 Electron 应用程序中嵌入一个 HTML 文件。我选择使用 iframe,但是 - 当我这样做时 - 似乎我不能再使用 node.js。任何使用 require("electron") 的尝试都将表明 require 未定义。有什么想法吗?

提前致谢!

  • 斯蒂恩

最佳答案

如果您不介意迟到,您可能应该使用 <webview> ,因为它可以让您对所需内容进行更细粒度的控制。 但是,如果您确实需要使用 <iframe> ,你有两个选择:

  1. 使用parent.require(父级访问iframe父级,它应该是您的窗口)
  2. 在加载事件中,将父窗口的 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/

相关文章:

javascript - 使用 jQuery 重新加载 iframe

javascript - Electron DesktopCapturer 大版缩略图

javascript - 无法读取 Node.js 中未定义的属性 'get'

node.js - NodeJS - 如何使版本 6.9.1 永久化?

node.js - 使用 nodejs gcloud api 在 Google Cloud Storage 中移动/重命名文件夹

php - JavaScript 或 PHP 中的宏?

node.js - AWS lambda从CloudFormation读取参数或输出

javascript - 停止缩放 iframe 中的内容并继续滚动页面

electron - 使用Electron时在路径中显示带有空格的图像(Windows)

javascript - 如何启用弹出窗口以进行 Electron 身份验证?