OSDN Git Service

defdb01745482263fead140eab4beb15b9c04796
[bytom/vapor.git] / tools / side_chain_tool / web / node_modules / jquery / src / ajax / load.js
1 define( [
2         "../core",
3         "../core/stripAndCollapse",
4         "../var/isFunction",
5         "../core/parseHTML",
6         "../ajax",
7         "../traversing",
8         "../manipulation",
9         "../selector"
10 ], function( jQuery, stripAndCollapse, isFunction ) {
11
12 "use strict";
13
14 /**
15  * Load a url into a page
16  */
17 jQuery.fn.load = function( url, params, callback ) {
18         var selector, type, response,
19                 self = this,
20                 off = url.indexOf( " " );
21
22         if ( off > -1 ) {
23                 selector = stripAndCollapse( url.slice( off ) );
24                 url = url.slice( 0, off );
25         }
26
27         // If it's a function
28         if ( isFunction( params ) ) {
29
30                 // We assume that it's the callback
31                 callback = params;
32                 params = undefined;
33
34         // Otherwise, build a param string
35         } else if ( params && typeof params === "object" ) {
36                 type = "POST";
37         }
38
39         // If we have elements to modify, make the request
40         if ( self.length > 0 ) {
41                 jQuery.ajax( {
42                         url: url,
43
44                         // If "type" variable is undefined, then "GET" method will be used.
45                         // Make value of this field explicit since
46                         // user can override it through ajaxSetup method
47                         type: type || "GET",
48                         dataType: "html",
49                         data: params
50                 } ).done( function( responseText ) {
51
52                         // Save response for use in complete callback
53                         response = arguments;
54
55                         self.html( selector ?
56
57                                 // If a selector was specified, locate the right elements in a dummy div
58                                 // Exclude scripts to avoid IE 'Permission Denied' errors
59                                 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
60
61                                 // Otherwise use the full result
62                                 responseText );
63
64                 // If the request succeeds, this function gets "data", "status", "jqXHR"
65                 // but they are ignored because response was set above.
66                 // If it fails, this function gets "jqXHR", "status", "error"
67                 } ).always( callback && function( jqXHR, status ) {
68                         self.each( function() {
69                                 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
70                         } );
71                 } );
72         }
73
74         return this;
75 };
76
77 } );