javascript - 重新加载窗口时 jQuery 未加载

标签 javascript jquery

我遇到了一个奇怪的情况,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/

相关文章:

javascript - 如何在学习 Javascript 的过程中取得进展

javascript - 圆圈中的文本 block

javascript - 创建 .txt 文件,然后从 Chrome 或 FireFox 启动 .exe 文件

javascript - 从剑道编辑器获取没有标记的文本

javascript - 如何识别和存储 JavaScript 中字符串中存在的变量中的数字?

javascript - 以指数方式更改 html slider 步长

javascript - AngularJS:指令的模板未正确渲染

javascript - rails 4.2.0 : Display message when collection is empty

Javascript 表单验证不执行

authentication - 从 servlet-filter 重定向 Web 客户端(通过 AJAX 进行客户端-服务器连接)