首页 > 解决方案 > 在 Electron 应用程序中将自定义模块导入 renderer.js

问题描述

我有一个自定义模块,它带有一些我想在renderer.js. 我尝试了以下导入方式,但它不起作用(实际上,它会导致其他一些函数renderer.js也无法执行。

const supp = require('./supp.js')

const supp = require('./supp')

const supp = require('supp.js')

const supp = require(path.join(__dirname, '/supp.js')

import 'supp'

supp.jsrenderer.js与和位于同一文件夹级别main.js。如果有人可以建议?谢谢。

更新:以下是文件中的所有代码supp.js

const pinOneInGrp = (itemID, grpName, itemColor, grpColor) => {
  let item = document.getElementById(itemID);
  let grpItems = document.getElementsByClassName(grpName);
  for(var i = 0; i < grpItems.length;i++) {
    grpItems[i].style.background-color = grpColor
  }
  item.style.background-color = itemColor;
}

module.exports = {
  pinOneInGrp
}

如果上面的importrequire行之一包含在 的顶部renderer.js,则不会执行任何后续操作renderer.js。例如,在/行之后有一个ipc.send()andipc.on()动作。这两个不会从.importrequiremain.js

标签: node.jselectron

解决方案


您发布的代码包含一个错字。它抛出的错误(您很可能看不到)是 a SyntaxError,因为您不能从中减去color(即undefinedgrpItems[i].style.background然后分配给它。因此,您只需从

for (var i = 0; i < grpItems.length; i++) {
    grpItems[i].style.background-color = grpColor;
}

for (var i = 0; i < grpItems.length; i++) {
    grpItems[i].style.backgroundColor = grpColor;
}

(for 循环正下方的样式分配也是如此!)

请注意,在样式表中用连字符拼写的所有 CSS 属性都必须使用驼峰式,否则它们会表示减法,这会导致您的问题。此外,这种行为在Mozilla 的开发者网络 Web API 参考中进行了解释,特别是在“设置样式”下。


推荐阅读