问题:在使用Electron进行开发时,当您try 使用任何需要jQuery的JS插件时,即使您使用脚本标记加载了正确的路径,该插件也无法找到jQuery.

例如

<body>
<p id="click-me">Click me!</p>
...
<script src="node_modules/jquery/dist/jquery.min.js"></script> //jQuery should be loaded now
<script>$("#click-me").click(() => {alert("Clicked")});</script>
</body>

运行上面的代码不会起作用.实际上,打开DevTools,转到Console视图,然后单击<p>元素.你应该看看function $ is not defined或类似的东西.

推荐答案

A better and more generic solution IMO:

<!-- Insert this line above script imports  -->
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>

<!-- normal script imports etc  -->
<script src="scripts/jquery.min.js"></script>    
<script src="scripts/vendor.js"></script>    

<!-- Insert this line after script imports -->
<script>if (window.module) module = window.module;</script>

Benefits

  • 使用相同的代码既可用于浏览器,也可用于Electron 产品
  • 修复所有第三方库(不仅仅是jQuery)的问题,而无需指定每个库
  • 脚本构建/打包友好(例如,将所有脚本Grunt/Gulp到vendor.js中)
  • 不要求node-integration为False

here

Jquery相关问答推荐

为什么如果使用转换规模,juserui可拖动遏制不起作用

try 使用jQuery AJAX将参数传递给http Post方法时出现未知错误

为什么我不能在 window.onload 事件的处理程序中将 $ jQuery 对象作为参数传递?

在 CSS3 或 jQuery 中将元素的宽度从 0% 设置为 100% 动画,它和它的包装器只需要它们需要的宽度,没有预先设置的宽度

如何用 javascript/jquery 替换 url 参数?

jQuery 动画滚动

使用 jQuery 按文本内容 Select 选项

JavaScript style.display="none" 还是 jQuery .hide() 更高效?

如何使用jQuery动态设置宽度和高度

为什么使用 jQuery on() 而不是 click()

在不丢失光标位置的情况下更新输入值

如何将数组传递给 jQuery .data() 属性

如何检测 window.print() 完成

如何从 jQuery UI datepicker 获取日期

Bootstrap datepicker Select 后隐藏

使用 jQuery 的 removeAttr 删除多个属性

如何在按键事件后获取 jQuery .val()?

使用 TypeScript 设置 window.location

在 Javascript/jQuery 中,(e) 是什么意思?

jQuery - 不可见时获取元素的宽度(显示:无)