当前位置: 首页 > 面试题库 >

使用Javascript加载jQuery并使用jQuery

白丁雨
2023-03-14
问题内容

我使用以下方法将jQuery库附加到dom:

 var script = document.createElement('script');
 script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
 script.type = 'text/javascript';
 document.getElementsByTagName('head')[0].appendChild(script);

但是当我运行时:

jQuery(document).ready(function(){...

控制台报告错误:

Uncaught ReferenceError: jQuery is not defined

如何动态加载jQuery以及将其放入dom中使用它?


问题答案:

这里有一个工作的JSFiddle,上面有一个小例子,它可以确切地说明您正在寻找什么

这种动态加载JavaScript的方法存在一些问题。当涉及到非常基础的框架(如jQuery)时,您实际上可能想静态地加载它们,因为否则,您将必须编写一个完整的JavaScript加载框架…

您可以使用一些现有的JavaScript加载程序,也可以通过观察window.jQuery定义来编写自己的加载程序。

// Immediately-invoked function expression
(function() {
    // Load the script
    var script = document.createElement("SCRIPT");
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    script.type = 'text/javascript';
    script.onload = function() {
        var $ = window.jQuery;
        // Use $ here...
    };
    document.getElementsByTagName("head")[0].appendChild(script);
})();

请记住,如果您需要支持真正的旧浏览器(如IE8),load则不会执行事件处理程序。在这种情况下,你需要轮询是否存在等window.jQuery采用重复window.setTimeout

很多人已经完成了您需要做的事情。查看一些现有的JavaScript Loader框架,例如:

  • http://requirejs.org/


 类似资料:
  • 问题内容: 我正在尝试检查Jquery库是否已加载到HTML页面上。我正在检查它是否有效,但是有些不正确。这是我所拥有的: 问题答案: 事情不对 好吧,您正在使用jQuery检查jQuery是否存在。如果未加载jQuery,则根本不会运行,并且回调也不会执行,除非您正在使用另一个库,并且该库碰巧共享相同的语法。 删除您的(使用类似方法):

  • 问题内容: 我在这里指定了非常相似的要求。 我需要让用户的浏览器在以下情况下手动开始下载 但是我无法使用该方法,因为它将当前页面内容替换为您尝试下载的文件。 相反,我想在新窗口/选项卡中打开下载。这怎么可能? 问题答案: 使用不可见的: 要强制浏览器下载本来可以呈现的文件(例如HTML或文本文件),则需要服务器将文件的MIME类型设置为无意义的值,例如或另外,用于任意二进制数据。 如果只想在新标签

  • 我正在使用Spring MVC和Thymeleaf进行开发。 我正在尝试使用sec:authorize加载JavaScript。换句话说,我只希望在用户经过身份验证时加载这个脚本。下面是我试图开始工作的代码: 最后两个资源我试图使用sec:authorize加载,但它们似乎在每次加载页面时都能处理。这是使用SEC:Authorize的有效方法吗?如果不是,有什么办法可以做到这一点吗?

  • 问题内容: 我已经在服务器上加载了一个CSS文件,所以我有一个URL。如何使用JQuery将其加载到我的Perl代码中? 所以目前我正在对梅森页面中的css进行硬编码,而该页面中缺少这样的内容 我想避免对此CSS进行硬编码? 问题答案: 我不明白为什么您不能只在该部分中插入元素,但这是一个jQuery代码片段:

  • 问题内容: 我的页面上有几个画廊,包括手风琴和滑杆。问题是页面需要永久加载。有没有一种方法可以将图像包装在一些代码中或对它应用类以强制仅在加载所有其他内容之后才加载它? 问题答案: 你当然可以。将您的img src属性替换为“#”,然后添加一个自定义属性,如下所示: 然后,在页面加载时添加一条JavaScript行,该行的内容如下所示:

  • 问题内容: 我正在尝试从“远程”网站获取一些json数据。我在99000端口上运行Web服务,然后在99001端口上启动网站(http:// localhost:99001 / index.html)。 我收到以下消息: 即使以HTML文件启动网页,我也会得到以下信息: Web服务返回数据。我尝试捕获这样的数据项: 我正在尝试获得以下结构: 您知道我为什么会收到此错误吗? 问题答案: 您无法执行X