| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- function _loadScript(url, fn) {
- var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),
- script = document.createElement('script');
- head.appendChild(script);
- script.src = url;
- script.charset = 'utf-8';
- script.onload = script.onreadystatechange = function() {
- if (!this.readyState || this.readyState === 'loaded') {
- if (fn) {
- fn();
- }
- script.onload = script.onreadystatechange = null;
- head.removeChild(script);
- }
- };
- }
- // 移除URL里的GET参数
- function _chopQuery(url) {
- var index = url.indexOf('?');
- return index > 0 ? url.substr(0, index) : url;
- }
- function _loadStyle(url) {
- var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement),
- link = document.createElement('link'),
- absoluteUrl = _chopQuery(_formatUrl(url, 'absolute'));
- var links = K('link[rel="stylesheet"]', head);
- for (var i = 0, len = links.length; i < len; i++) {
- if (_chopQuery(_formatUrl(links[i].href, 'absolute')) === absoluteUrl) {
- return;
- }
- }
- head.appendChild(link);
- link.href = url;
- link.rel = 'stylesheet';
- }
- function _ajax(url, fn, method, param, dataType) {
- method = method || 'GET'; //POST or GET
- dataType = dataType || 'json'; //json or html
- var xhr = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
- xhr.open(method, url, true);
- xhr.onreadystatechange = function () {
- if (xhr.readyState == 4 && xhr.status == 200) {
- if (fn) {
- var data = _trim(xhr.responseText);
- if (dataType == 'json') {
- data = _json(data);
- }
- fn(data);
- }
- }
- };
- if (method == 'POST') {
- var params = [];
- _each(param, function(key, val) {
- params.push(encodeURIComponent(key) + '=' + encodeURIComponent(val));
- });
- try {
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- } catch (e) {}
- xhr.send(params.join('&'));
- } else {
- xhr.send(null);
- }
- }
- K.loadScript = _loadScript;
- K.loadStyle = _loadStyle;
- K.ajax = _ajax;
|