我遇到了一个奇怪的情况,jQuery 没有加载到窗口对象中。我的应用程序是一个电子应用程序。我的启动页面实际上加载了 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 永远不会被设置。
最佳答案
在 Electron 中,jquery 不会作为脚本加载。
使用这个(在你的标题中):
<script>window.$ = window.jQuery = require('jquery');</script>
并使用 npm install --save jquery
将 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>
关于javascript - 重新加载窗口时 jQuery 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48074750/