jquery在nw.js中不起作用(node webkit)

时间:2018-02-24 23:19:16

标签: javascript node-webkit nw.js nwjs

由于源代码安全功能,我将桌面应用程序从电子设备切换到nw.js。

我在nodejs文件中要求模块jquery-confirm,我收到此错误:

Uncaught Error: jquery-confirm requires jQuery

我通过以下方式解决了这个错误:

var $ = require('jquery');
window.jQuery = $;
var jconfirm = require('jquery-confirm');

并在index.html中导入js文件,如下所示:

<script>require('./bot.js')</script>

因为如果我需要js文件,我会得到相同的jquery错误:

<script src="bot.js"></script>

当我修复上面的错误并使用nw.js启动应用程序时,它立即崩溃,发出此错误:

TypeError: $(...).button is not a function

第一个问题: 我假设jquery有问题。当我在index.html中导入它时,它根本不起作用。但是,在js文件中要求它后,我仍然遇到问题。我该如何解决这个问题?

第二个问题: 为什么我没有得到未捕获的错误:如果我使用&#39; require&#39;导入我的js文件,则jquery-confirm需要jQuery错误。而不是?

1 个答案:

答案 0 :(得分:0)

这是Node Webkit中的javascript上下文问题。我们必须确保使用脚本标记的src属性将浏览器中所需的所有javascript(窗口上下文)带入该上下文。

Node Webkit将来自require()语句的JavaScript放在nodejs全局上下文中 - 并使其在浏览器中不可用。

如果文件处于相反的上下文中,我们会看到$ is not defined$(...).button() is not a function等错误。