⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html_ajax_lite.js

📁 This is the script which used on 10minutemail.com for temporary email.
💻 JS
📖 第 1 页 / 共 5 页
字号:
// Compat.js/*** Compat functions* @category	HTML* @package	AJAX* @author	Joshua Eichorn <josh@bluga.net>* @copyright	2005 Joshua Eichorn* @license	http://www.opensource.org/licenses/lgpl-license.php  LGPL*//***  Functions for compatibility with older browsers*/if (!String.fromCharCode && !String.prototype.fromCharCode) {String.prototype.fromCharCode = function(code){var h = code.toString(16);if (h.length == 1) {h = '0' + h;}return unescape('%' + h);}}if (!String.charCodeAt && !String.prototype.charCodeAt) {String.prototype.charCodeAt = function(index){var c = this.charAt(index);for (i = 1; i < 256; i++) {if (String.fromCharCode(i) == c) {return i;}}}}if (!Array.splice && !Array.prototype.splice) {Array.prototype.splice = function(s, d){var max = Math.max,min = Math.min,a = [], // The return value arraye,  // elementi = max(arguments.length - 2, 0),   // insert countk = 0,l = this.length,n,  // new lengthv,  // deltax;  // shift counts = s || 0;if (s < 0) {s += l;}s = max(min(s, l), 0);  // start pointd = max(min(typeof d == 'number' ? d : l, l - s), 0);	// delete countv = i - d;n = l + v;while (k < d) {e = this[s + k];if (!e) {a[k] = e;}k += 1;}x = l - s - d;if (v < 0) {k = s + i;while (x) {this[k] = this[k - v];k += 1;x -= 1;}this.length = n;} else if (v > 0) {k = 1;while (x) {this[n - k] = this[l - k];k += 1;x -= 1;}}for (k = 0; k < i; ++k) {this[s + k] = arguments[k + 2];}return a;}}if (!Array.push && !Array.prototype.push) {Array.prototype.push = function(){for (var i = 0, startLength = this.length; i < arguments.length; i++) {this[startLength + i] = arguments[i];}return this.length;}}if (!Array.pop && !Array.prototype.pop) {Array.prototype.pop = function(){return this.splice(this.length - 1, 1)[0];}}/*From IE7, version 0.9 (alpha) (2005-08-19)Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)*/if (!DOMParser.parseFromString && window.ActiveXObject){function DOMParser() {/* empty constructor */};DOMParser.prototype = {parseFromString: function(str, contentType) {var xmlDocument = new ActiveXObject('Microsoft.XMLDOM');xmlDocument.loadXML(str);return xmlDocument;}};function XMLSerializer() {/* empty constructor */};XMLSerializer.prototype = {serializeToString: function(root) {return root.xml || root.outerHTML;}};}// Main.js/*** JavaScript library for use with HTML_AJAX** This library is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** This library is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU* Lesser General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with this library; if not, write to:* Free Software Foundation, Inc.,* 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA** @category	HTML* @package	Ajax* @author	Joshua Eichorn <josh@bluga.net>* @author	Arpad Ray <arpad@php.net>* @author	David Coallier <davidc@php.net>* @author	Elizabeth Smith <auroraeosrose@gmail.com>* @copyright	2005 Joshua Eichorn, Arpad Ray, David Coallier, Elizabeth Smith* @license	http://www.opensource.org/licenses/lgpl-license.php  LGPL*//*** HTML_AJAX static methods, this is the main proxyless api, it also handles global error and event handling*/var HTML_AJAX = {version: '0.5.2',defaultServerUrl: false,defaultEncoding: 'JSON',queues: false,clientPools: {},httpClient: function(name) {if (name) {if (this.clientPools[name]) {return this.clientPools[name].getClient();}}return this.clientPools['default'].getClient();},makeRequest: function(request) {if (!HTML_AJAX.queues[request.queue]) {var e = new Error('Unknown Queue: '+request.queue);if (HTML_AJAX.onError) {HTML_AJAX.onError(e);return false;}else {throw(e);}}else {var qn = request.queue;var q = HTML_AJAX.queues[qn];HTML_AJAX.queues[request.queue].addRequest(request);return HTML_AJAX.queues[request.queue].processRequest();}},serializerForEncoding: function(encoding) {for(var i in HTML_AJAX.contentTypeMap) {if (encoding == HTML_AJAX.contentTypeMap[i] || encoding == i) {return eval("new HTML_AJAX_Serialize_"+i+";");}}return new HTML_AJAX_Serialize_Null();},fullcall: function(url,encoding,className,method,callback,args, options) {var serializer = HTML_AJAX.serializerForEncoding(encoding);var request = new HTML_AJAX_Request(serializer);if (callback) {request.isAsync = true;}request.requestUrl = url;request.className = className;request.methodName = method;request.callback = callback;request.args = args;if (options) {for(var i in options) {request[i] = options[i];}if (options.grab) {if (!request.args || !request.args.length) {request.requestType = 'GET';}}}return HTML_AJAX.makeRequest(request);},callPhpCallback: function(phpCallback, jsCallback, url) {var args = new Array();for (var i = 3; i < arguments.length; i++) {args.push(arguments[i]);}if (HTML_AJAX_Util.getType(phpCallback[0]) == 'object') {jsCallback(phpCallback[0][phpCallback[1]](args));return;}if (!url) {url = HTML_AJAX.defaultServerUrl;}HTML_AJAX.fullcall(url, HTML_AJAX.defaultEncoding,false, false, jsCallback, args, {phpCallback: phpCallback});},call: function(className,method,callback) {var args = new Array();for(var i = 3; i < arguments.length; i++) {args.push(arguments[i]);}return HTML_AJAX.fullcall(HTML_AJAX.defaultServerUrl,HTML_AJAX.defaultEncoding,className,method,callback,args);},grab: function(url,callback,options) {if (!options) {options = {grab:true};}else {options['grab'] = true;}return HTML_AJAX.fullcall(url,'Null',false,null,callback, '', options);},post: function(url,payload,callback,options) {var serializer = 'Null';if (HTML_AJAX_Util.getType(payload) == 'object') {serializer = 'Urlencoded';}return HTML_AJAX.fullcall(url,serializer,false,null,callback, payload, options);},replace: function(id) {var callback = function(result) {HTML_AJAX_Util.setInnerHTML(HTML_AJAX_Util.getElement(id),result);}if (arguments.length == 2) {HTML_AJAX.grab(arguments[1],callback);}else {var args = new Array();for(var i = 3; i < arguments.length; i++) {args.push(arguments[i]);}HTML_AJAX.fullcall(HTML_AJAX.defaultServerUrl,HTML_AJAX.defaultEncoding,arguments[1],arguments[2],callback,args, {grab:true});}},append: function(id) {var callback = function(result) {HTML_AJAX_Util.setInnerHTML(HTML_AJAX_Util.getElement(id),result,'append');}if (arguments.length == 2) {HTML_AJAX.grab(arguments[1],callback);}else {var args = new Array();for(var i = 3; i < arguments.length; i++) {args.push(arguments[i]);}HTML_AJAX.fullcall(HTML_AJAX.defaultServerUrl,HTML_AJAX.defaultEncoding,arguments[1],arguments[2],callback,args, {grab:true});}},Open: function(request) {},Load: function(request) {},/*onError: function(e) {msg = "";for(var i in e) {msg += i+':'+e[i]+"\n";}alert(msg);},*/contentTypeMap: {'JSON':			'application/json','Null':			'text/plain','Error':		'application/error','PHP':			'application/php-serialized','HA' :			'application/html_ajax_action','Urlencoded':	'application/x-www-form-urlencoded'},requestComplete: function(request,error) {for(var i in HTML_AJAX.queues) {if (HTML_AJAX.queues[i].requestComplete) {HTML_AJAX.queues[i].requestComplete(request,error);}}},formEncode: function(form, array_format) {form = HTML_AJAX_Util.getElement(form);var el, inpType, value, name;var out = (array_format) ? {} : '';var inputTags = form.getElementsByTagName('INPUT');var selectTags = form.getElementsByTagName('SELECT');var buttonTags = form.getElementsByTagName('BUTTON');var textareaTags = form.getElementsByTagName('TEXTAREA');var arrayRegex = /(.+)%5B%5D/;var validElement = function (element) {if (!element || !element.getAttribute) {return false;}el = element;name = HTML_AJAX_Util.encodeUrl(el.getAttribute('name'));if (!name) {return false;}if (element.disabled) {return false;}if (!array_format) {value = HTML_AJAX_Util.encodeUrl(el.value);} else {value = el.value;}inpType = el.getAttribute('type');return true;}inputLoop:for (var i=0; i < inputTags.length; i++) {if (!validElement(inputTags[i])) {continue;}if (inpType == 'checkbox' || inpType == 'radio') {if (!el.checked) {continue inputLoop;}var arr_var = arrayRegex.exec(name);if (array_format && arr_var) {if (!out[arr_var[1]]) {out[arr_var[1]] = new Array();}out[arr_var[1]].push(value);continue inputLoop;}}if (array_format) {out[name] = value;} else {out += name + '=' + value + '&';}} // end inputLoopselectLoop:for (var i=0; i<selectTags.length; i++) {if (!validElement(selectTags[i])) {continue selectLoop;}var options = el.options;for (var z=0; z<options.length; z++){var option=options[z];if(option.selected){if (array_format) {if (el.type == 'select-one') {out[name] = option.value;continue selectLoop;} else {if (!out[name]) {out[name] = new Array();}out[name].push(option.value);}} else {out += name + '=' + option.value + '&';if (el.type == 'select-one') {continue selectLoop;}}}}} // end selectLoopbuttonLoop:for (var i=0; i<buttonTags.length; i++) {if (!validElement(buttonTags[i])) {continue;}if (array_format) {out[name] = value;} else {out += name + '=' + value + '&';}} // end buttonLooptextareaLoop:for (var i=0; i<textareaTags.length; i++) {if (!validElement(textareaTags[i])) {continue;}if (array_format) {out[name] = value;} else {out += name + '=' + value + '&';}} // end textareaLoopreturn out;},formSubmit: function (form, target, options){form = HTML_AJAX_Util.getElement(form);if (!form) {return false;}var out = HTML_AJAX.formEncode(form);target = HTML_AJAX_Util.getElement(target);if (!target) {target = form;}try{var action = form.attributes['action'].value;}catch(e){}if(action == undefined){action = form.getAttribute('action');}var callback = false;if (HTML_AJAX_Util.getType(target) == 'function') {callback = target;}else {callback = function(result) {if (typeof result != 'undefined') {HTML_AJAX_Util.setInnerHTML(target,result);}}}var serializer = HTML_AJAX.serializerForEncoding('Null');var request = new HTML_AJAX_Request(serializer);request.isAsync = true;request.callback = callback;switch (form.getAttribute('method').toLowerCase()) {case 'post':var headers = {};headers['Content-Type'] = 'application/x-www-form-urlencoded';request.customHeaders = headers;request.requestType = 'POST';request.requestUrl = action;request.args = out;break;default:if (action.indexOf('?') == -1) {out = '?' + out.substr(0, out.length - 1);}request.requestUrl = action+out;request.requestType = 'GET';}if(options) {for(var i in options) {request[i] = options[i];}}HTML_AJAX.makeRequest(request);return true;}, // end formSubmit()makeFormAJAX: function(form,target,options) {form = HTML_AJAX_Util.getElement(form);var preSubmit = false;if(typeof form.onsubmit != 'undefined') {preSubmit = form.onsubmit;form.onsubmit = function() {};}form.HAOptions = options;var handler = function(e) {var form = HTML_AJAX_Util.eventTarget(e);var valid = true;if (preSubmit) {valid = preSubmit();}if (valid) {HTML_AJAX.formSubmit(form,target,form.HAOptions);}e.returnValue = false;if (e.preventDefault) {e.preventDefault();}}HTML_AJAX_Util.registerEvent(form,'submit',handler);}}function HTML_AJAX_Serialize_Null() {}HTML_AJAX_Serialize_Null.prototype = {contentType: 'text/plain; charset=utf-8',serialize: function(input) {return new String(input).valueOf();},unserialize: function(input) {return new String(input).valueOf();}}function HTML_AJAX_Serialize_XML() {}HTML_AJAX_Serialize_XML.prototype = {contentType: 'application/xml; charset=utf-8',serialize: function(input) {var xml = '';if(typeof(input) == 'object' && input){for (var i = 0;i<input.length;i++){xml += new XMLSerializer().serializeToString(input[i]);}}return xml;},unserialize: function(input) {return input;}}function HTML_AJAX_Serialize_JSON() {}HTML_AJAX_Serialize_JSON.prototype = {contentType: 'application/json; charset=utf-8',serialize: function(input) {return HTML_AJAX_JSON.stringify(input);},unserialize: function(input) {try {return eval('('+input+')');} catch(e) {return HTML_AJAX_JSON.parse(input);}}}function HTML_AJAX_Serialize_Error() {}HTML_AJAX_Serialize_Error.prototype = {contentType: 'application/error; charset=utf-8',serialize: function(input) {var ser = new HTML_AJAX_Serialize_JSON();return ser.serialize(input);},unserialize: function(input) {var ser = new HTML_AJAX_Serialize_JSON();var data = new ser.unserialize(input);var e = new Error('PHP Error: '+data.errStr);for(var i in data) {e[i] = data[i];}throw e;}}function HTML_AJAX_Queue_Immediate() {}HTML_AJAX_Queue_Immediate.prototype = {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -