当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery jQuery.getScript()用法及代码示例


用法
jQuery.getScript( url [, success ] ) => jqXHR

说明:使用 GET HTTP 请求从服务器加载一个 JavaScript 文件,然后执行它。

  • 添加的版本:1.0jQuery.getScript( url [, success ] )

    • url
      类型:String
      包含请求发送到的 URL 的字符串。
    • success
      类型:Function(String 脚本,String textStatus,jqXHRjqXHR)
      请求成功时执行的回调函数。

这是一个简写的 Ajax 函数,相当于:

$.ajax({
  url: url,
  dataType: "script",
  success: success
});

该脚本在全局上下文中执行,因此它可以引用其他变量并使用 jQuery 函数。包含的脚本会对当前页面产生一些影响。

成功回调

一旦脚本被加载但不一定执行,回调就会被触发。

通过引用文件名包含并运行脚本:

$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
  console.log( data ); // Data returned
  console.log( textStatus ); // Success
  console.log( jqxhr.status ); // 200
  console.log( "Load was performed." );
});

处理错误

从 jQuery 1.5 开始,您可以使用 .fail() 来解决错误:

$.getScript( "ajax/test.js" )
  .done(function( script, textStatus ) {
    console.log( textStatus );
  })
  .fail(function( jqxhr, settings, exception ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
});

在 jQuery 1.5 之前,必须使用全局 .ajaxError() 回调事件来处理 $.getScript() 错误:

$( "div.log" ).ajaxError(function( e, jqxhr, settings, exception ) {
  if ( settings.dataType == "script" ) {
    $( this ).text( "Triggered ajaxError handler." );
  }
});

在 jQuery 3.5.0 之前,仍然会执行带有脚本 Content-Type 的不成功 HTTP 响应。

缓存响应

默认情况下,$.getScript() 将缓存设置设置为 false 。这会将时间戳查询参数附加到请求 URL,以确保浏览器在每次请求时下载脚本。您可以通过使用 $.ajaxSetup() 全局设置缓存属性来覆盖此函数:

$.ajaxSetup({
  cache: true
});

或者,您可以定义一个使用更灵活的$.ajax() 方法的新方法。

例子:

定义一个允许获取缓存脚本的 $.cachedScript() 方法:

jQuery.cachedScript = function( url, options ) {
 
  // Allow user to set any option except for dataType, cache, and url
  options = $.extend( options || {}, {
    dataType: "script",
    cache: true,
    url: url
  });
 
  // Use $.ajax() since it is more flexible than $.getScript
  // Return the jqXHR object so we can chain callbacks
  return jQuery.ajax( options );
};
 
// Usage
$.cachedScript( "ajax/test.js" ).done(function( script, textStatus ) {
  console.log( textStatus );
});

动态加载 official jQuery Color Animation plugin 并绑定一些颜色动画,以便在加载新函数后发生。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.getScript demo</title>
  <style>
  .block {
     background-color: blue;
     width: 150px;
     height: 70px;
     margin: 10px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<button id="go">&raquo; Run</button>
<div class="block"></div>
 
<script>
var url = "https://code.jquery.com/color/jquery.color-2.1.2.js";
$.getScript( url, function() {
  $( "#go" ).click(function() {
    $( ".block" )
      .animate({
        backgroundColor: "rgb(255, 180, 180)"
      }, 1000 )
      .delay( 500 )
      .animate({
        backgroundColor: "olive"
      }, 1000 )
      .delay( 500 )
      .animate({
        backgroundColor: "#00f"
      }, 1000 );
  });
});
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 jQuery.getScript()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。