电子iframe:未定义需求

时间:2017-07-22 14:43:05

标签: node.js iframe electron require

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

提前致谢!

  • 斯泰恩

1 个答案:

答案 0 :(得分:0)

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

  1. 使用parent.require(父级访问iframe父级,应该是您的窗口)
  2. 在load事件中,将父窗口的require复制到iframe中:
iframe.onload = function () {
  const iframeWin = iframe.contentWindow
  iframeWin.require = window.require
})

唯一的“缺点”是您包含的包将访问主窗口DOM而不是iframe的包,这意味着将不存在任何iframe窗口全局变量,更重要的是,文档将访问窗口DOM( querySelector和getElemementBy方法不会真正起作用)。对您来说这是否成问题取决于代码的组织方式,所以请好运