JAVASCRIPT   11

ajax.js

Guest on 25th July 2021 04:07:31 PM

  1.  
  2. function _loadScript(url, fn) {
  3.         var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),
  4.                 script = document.createElement('script');
  5.         head.appendChild(script);
  6.         script.src = url;
  7.         script.charset = 'utf-8';
  8.         script.onload = script.onreadystatechange = function() {
  9.                 if (!this.readyState || this.readyState === 'loaded') {
  10.                         if (fn) {
  11.                                 fn();
  12.                         }
  13.                         script.onload = script.onreadystatechange = null;
  14.                         head.removeChild(script);
  15.                 }
  16.         };
  17. }
  18.  
  19. // 移除URL里的GET参数
  20. š„GET参数
  21. function _chopQuery(url) {
  22.         var index = url.indexOf('?');
  23.         return index > 0 ? url.substr(0, index) : url;
  24. }
  25.  
  26. function _loadStyle(url) {
  27.         var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),
  28.                 link = document.createElement('link'),
  29.                 absoluteUrl = _chopQuery(_formatUrl(url, 'absolute'));
  30.         var links = K(', head);
  31.         for (var i = 0, len = links.length; i < len; i++) {
  32.                 if (_chopQuery(_formatUrl(links[i].href, 'matUrl(links[i].href, 'absolute')) === absoluteUrl) {
  33.                         return;
  34.                 }
  35.         }
  36.         head.appendChild(link);
  37.         link.href = url;
  38.         link.rel = 'stylesheet';
  39. }
  40.  
  41. function _ajax(url, fn, method, param, dataType) {
  42.         met//POST or GET
  43. | 'GET'; //POST or GET
  44.         dataType//json or html
  45. 'json'; //json or html
  46.         var xhr = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
  47.         xhr.open(method, url, true);
  48.         xhr.onreadystatechange = function () {
  49.                 if (xhr.readyState == 4 && xhr.status == 200) {
  50.                         if (fn) {
  51.                                 var data = _trim(xhr.responseText);
  52.                                 if (dataType == 'json') {
  53.                                         data = _json(data);
  54.                                 }
  55.                                 fn(data);
  56.                         }
  57.                 }
  58.         };
  59.         if (method == 'POST') {
  60.                 var params = [];
  61.                 _each(param, function(key, val) {
  62.                         params.push(encodeURIComponent(key) + '=' + encodeURIComponent(val));
  63.                 });
  64.                 try {
  65.                         xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  66.                 } catch (e) {}
  67.                 xhr.send(params.join('&'));
  68.         } else {
  69.                 xhr.send(null);
  70.         }
  71. }
  72.  
  73. K.loadScript = _loadScript;
  74. K.loadStyle = _loa

Raw Paste


Login or Register to edit or fork this paste. It's free.