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

📄 mootools-1.2-core.js.svn-base

📁 mooltools源码很不错的源码
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
/*Script: Core.js	MooTools - My Object Oriented JavaScript Tools.License:	MIT-style license.Copyright:	Copyright (c) 2006-2007 [Valerio Proietti](http://mad4milk.net/).Code & Documentation:	[The MooTools production team](http://mootools.net/developers/).Inspiration:	- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)	- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)*/var MooTools = {	'version': '1.2dev',	'build': ''};      var Native = function(options){	options = options || {};	var afterImplement = options.afterImplement || function(){};	var generics = options.generics;	generics = (generics !== false);	var legacy = options.legacy;	var initialize = options.initialize;	var protect = options.protect;	var name = options.name;	var object = initialize || legacy;	object.constructor = Native;	object.$family = {name: 'native'};	if (legacy && initialize) object.prototype = legacy.prototype;	object.prototype.constructor = object;	if (name){		var family = name.toLowerCase();		object.prototype.$family = {name: family};		Native.typize(object, family);	}	var add = function(obj, name, method, force){		if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;		if (generics) Native.genericize(obj, name, protect);		afterImplement.call(obj, name, method);		return obj;	};		object.implement = function(a1, a2, a3){		if (typeof a1 == 'string') return add(this, a1, a2, a3);		for (var p in a1) add(this, p, a1[p], a2);		return this;	};		object.alias = function(a1, a2, a3){		if (typeof a1 == 'string'){			a1 = this.prototype[a1];			if (a1) add(this, a2, a1, a3);		} else {			for (var a in a1) this.alias(a, a1[a], a2);		}		return this;	};	return object;};Native.implement = function(objects, properties){	for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);};Native.genericize = function(object, property, check){	if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){		var args = Array.prototype.slice.call(arguments);		return object.prototype[property].apply(args.shift(), args);	};};Native.typize = function(object, family){	if (!object.type) object.type = function(item){		return ($type(item) === family);	};};Native.alias = function(objects, a1, a2, a3){	for (var i = 0, j = objects.length; i < j; i++) objects[i].alias(a1, a2, a3);};(function(objects){	for (var name in objects) Native.typize(objects[name], name);})({'boolean': Boolean, 'native': Native, 'object': Object});(function(objects){	for (var name in objects) new Native({name: name, initialize: objects[name], protect: true});})({'String': String, 'Function': Function, 'Number': Number, 'Array': Array, 'RegExp': RegExp, 'Date': Date});(function(object, methods){	for (var i = methods.length; i--; i) Native.genericize(object, methods[i], true);	return arguments.callee;})(Array, ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'concat', 'join', 'slice', 'toString', 'valueOf', 'indexOf', 'lastIndexOf'])(String, ['charAt', 'charCodeAt', 'concat', 'indexOf', 'lastIndexOf', 'match', 'replace', 'search', 'slice', 'split', 'substr', 'substring', 'toLowerCase', 'toUpperCase', 'valueOf']);function $chk(obj){	return !!(obj || obj === 0);};function $clear(timer){	clearTimeout(timer);	clearInterval(timer);	return null;};function $defined(obj){	return (obj != undefined);};function $empty(){};function $arguments(i){	return function(){		return arguments[i];	};};function $lambda(value){	return (typeof value == 'function') ? value : function(){		return value;	};};function $extend(original, extended){	for (var key in (extended || {})) original[key] = extended[key];	return original;};function $unlink(object){	var unlinked;		switch ($type(object)){		case 'object':			unlinked = {};			for (var p in object) unlinked[p] = $unlink(object[p]);		break;		case 'hash':			unlinked = $unlink(object.getClean());		break;		case 'array':			unlinked = [];			for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);		break;		default: return object;	}		return unlinked;};function $merge(){	var mix = {};	for (var i = 0, l = arguments.length; i < l; i++){		var object = arguments[i];		if ($type(object) != 'object') continue;		for (var key in object){			var op = object[key], mp = mix[key];			mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $merge(mp, op) : $unlink(op);		}	}	return mix;};function $pick(){	for (var i = 0, l = arguments.length; i < l; i++){		if (arguments[i] != undefined) return arguments[i];	}	return null;};function $random(min, max){	return Math.floor(Math.random() * (max - min + 1) + min);};function $splat(obj){	var type = $type(obj);	return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];};var $time = Date.now || function(){	return new Date().getTime();};function $try(){	for (var i = 0, l = arguments.length; i < l; i++){		try {			return arguments[i]();		} catch(e){}	}	return null;};function $type(obj){	if (obj == undefined) return false;	if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;	if (obj.nodeName){		switch (obj.nodeType){			case 1: return 'element';			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';		}	} else if (typeof obj.length == 'number'){		if (obj.callee) return 'arguments';		else if (obj.item) return 'collection';	}	return typeof obj;};var Hash = new Native({	name: 'Hash',	initialize: function(object){		if ($type(object) == 'hash') object = $unlink(object.getClean());		for (var key in object) this[key] = object[key];		return this;	}});Hash.implement({		getLength: function(){		var length = 0;		for (var key in this){			if (this.hasOwnProperty(key)) length++;		}		return length;	},	forEach: function(fn, bind){		for (var key in this){			if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);		}	},		getClean: function(){		var clean = {};		for (var key in this){			if (this.hasOwnProperty(key)) clean[key] = this[key];		}		return clean;	}});Hash.alias('forEach', 'each');function $H(object){	return new Hash(object);};Array.implement({	forEach: function(fn, bind){		for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);	}});Array.alias('forEach', 'each');function $A(iterable){	if (iterable.item){		var array = [];		for (var i = 0, l = iterable.length; i < l; i++) array[i] = iterable[i];		return array;	}	return Array.prototype.slice.call(iterable);};function $each(iterable, fn, bind){	var type = $type(iterable);	((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);};/*Script: Browser.js	The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.License:	MIT-style license.*/var Browser = new Hash({	Engine: {name: 'unknown', version: ''},	Platform: {name: (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},	Features: {xpath: !!(document.evaluate), air: !!(window.runtime)},	Plugins: {}});if (window.opera) Browser.Engine = {name: 'presto', version: (document.getElementsByClassName) ? 950 : 925};else if (window.ActiveXObject) Browser.Engine = {name: 'trident', version: (window.XMLHttpRequest) ? 5 : 4};else if (!navigator.taintEnabled) Browser.Engine = {name: 'webkit', version: (Browser.Features.xpath) ? 420 : 419};else if (document.getBoxObjectFor != null) Browser.Engine = {name: 'gecko', version: (document.getElementsByClassName) ? 19 : 18};Browser.Engine[Browser.Engine.name] = Browser.Engine[Browser.Engine.name + Browser.Engine.version] = true;if (window.orientation != undefined) Browser.Platform.name = 'ipod';Browser.Platform[Browser.Platform.name] = true;Browser.Request = function(){	return $try(function(){		return new XMLHttpRequest();	}, function(){		return new ActiveXObject('MSXML2.XMLHTTP');	});};Browser.Features.xhr = !!(Browser.Request());Browser.Plugins.Flash = (function(){	var version = ($try(function(){		return navigator.plugins['Shockwave Flash'].description;	}, function(){		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');	}) || '0 r0').match(/\d+/g);	return {version: parseInt(version[0] || 0 + '.' + version[1] || 0), build: parseInt(version[2] || 0)};})();function $exec(text){	if (!text) return text;	if (window.execScript){		window.execScript(text);	} else {		var script = document.createElement('script');		script.setAttribute('type', 'text/javascript');		script.text = text;		document.head.appendChild(script);		document.head.removeChild(script);	}	return text;};Native.UID = 1;var $uid = (Browser.Engine.trident) ? function(item){	return (item.uid || (item.uid = [Native.UID++]))[0];} : function(item){	return item.uid || (item.uid = Native.UID++);};var Window = new Native({	name: 'Window',	legacy: (Browser.Engine.trident) ? null: window.Window,	initialize: function(win){		$uid(win);		if (!win.Element){			win.Element = $empty;			if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2			win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};		}		return $extend(win, Window.Prototype);	},	afterImplement: function(property, value){		window[property] = Window.Prototype[property] = value;	}});Window.Prototype = {$family: {name: 'window'}};new Window(window);var Document = new Native({	name: 'Document',	legacy: (Browser.Engine.trident) ? null: window.Document,	initialize: function(doc){		$uid(doc);		doc.head = doc.getElementsByTagName('head')[0];		doc.html = doc.getElementsByTagName('html')[0];		doc.window = doc.defaultView || doc.parentWindow;		if (Browser.Engine.trident4) $try(function(){			doc.execCommand("BackgroundImageCache", false, true);		});		return $extend(doc, Document.Prototype);	},	afterImplement: function(property, value){		document[property] = Document.Prototype[property] = value;	}});Document.Prototype = {$family: {name: 'document'}};new Document(document);/*Script: Array.js	Contains Array Prototypes like copy, each, contains, and remove.License:	MIT-style license.*/Array.implement({	every: function(fn, bind){		for (var i = 0, l = this.length; i < l; i++){			if (!fn.call(bind, this[i], i, this)) return false;		}		return true;	},	filter: function(fn, bind){		var results = [];		for (var i = 0, l = this.length; i < l; i++){			if (fn.call(bind, this[i], i, this)) results.push(this[i]);		}		return results;	},		clean: function() {		return this.filter($defined);	},	indexOf: function(item, from){		var len = this.length;		for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){			if (this[i] === item) return i;		}		return -1;	},	map: function(fn, bind){		var results = [];		for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);		return results;	},	some: function(fn, bind){		for (var i = 0, l = this.length; i < l; i++){			if (fn.call(bind, this[i], i, this)) return true;		}		return false;	},	associate: function(keys){		var obj = {}, length = Math.min(this.length, keys.length);		for (var i = 0; i < length; i++) obj[keys[i]] = this[i];		return obj;	},	link: function(object){		var result = {};		for (var i = 0, l = this.length; i < l; i++){			for (var key in object){				if (object[key](this[i])){					result[key] = this[i];					delete object[key];					break;				}			}		}		return result;	},	contains: function(item, from){		return this.indexOf(item, from) != -1;	},	extend: function(array){		for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);		return this;	},	getLast: function(){		return (this.length) ? this[this.length - 1] : null;	},	getRandom: function(){		return (this.length) ? this[$random(0, this.length - 1)] : null;	},	include: function(item){		if (!this.contains(item)) this.push(item);		return this;	},	combine: function(array){		for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);		return this;	},	erase: function(item){

⌨️ 快捷键说明

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