重新加载窗口

时间:2018-01-03 09:38:48

标签: javascript jquery

我有一个奇怪的情况,即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永远不会被设置。

1 个答案:

答案 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>