我有一个奇怪的情况,即jQuery没有加载到window对象中。我的应用程序是一个电子应用程序。我的启动页面确实加载了jQuery。但是在启动页面加载时,我有一些代码决定是否使用不同的URL重新加载浏览器窗口。该url是应用程序中的另一个html页面,它包含脚本标记中对jQuery库的引用。 jQuery似乎确实加载到这个新页面,因为我能够打开DevTools并在控制台中键入$,它表明它已加载。但是,在我的javascript代码中,嵌入在页面中,$无法识别。我没有加载任何可能与jQuery脚本冲突的脚本。 jQuery脚本是唯一加载的脚本。什么可能阻止jQuery附加到窗口对象?这只发生在我使用window.location.href加载新页面时。如果我没有加载该页面,只是在启动页面中使用jQuery,则jQuery将附加到窗口对象。
以下是我加载jQuery的方法:
<head>
<script type="text/javascript" src="../../jquery/jquery-3.2.1.min.js"></script>
</head>
我已经尝试使用以下方式等待jQuery加载:
function defer(method) {
if (window.jQuery) {
method();
} else {
setTimeout(function() { defer(method) }, 50);
}
}
defer(function () {
alert("jQuery is now loaded");
});
但是window.jQuery永远不会被设置。
答案 0 :(得分:2)
在Electron中,jquery不作为脚本加载。
使用此代码(在标题中):
<script>window.$ = window.jQuery = require('jquery');</script>
并将jQuery作为包npm install --save jquery
如果这不起作用,请尝试使用
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
//put all of scripts here
<script src="path/to/jquery"></script>
<script>if (window.module) module = window.module;</script>
或者您可以使用:
<script>window.$ = window.jQuery = require('./path/to/jquery');</script>