當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。