由于源代码安全功能,我将桌面应用程序从电子设备切换到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错误。而不是?
答案 0 :(得分:0)
这是Node Webkit中的javascript上下文问题。我们必须确保使用脚本标记的src
属性将浏览器中所需的所有javascript(窗口上下文)带入该上下文。
Node Webkit将来自require()
语句的JavaScript放在nodejs全局上下文中 - 并使其在浏览器中不可用。
如果文件处于相反的上下文中,我们会看到$ is not defined
或$(...).button() is not a function
等错误。