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

📄 core.js.svn-base

📁 嵌入式无线路由系统openwrt的web配置工具
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
	Contains the Class Function for easily creating, extending, and implementing reusable Classes.License:	MIT-style license.*/var Class = new Native({	name: 'Class',	initialize: function(properties){		properties = properties || {};		var klass = function(){			for (var key in this){				if ($type(this[key]) != 'function') this[key] = $unlink(this[key]);			}			this.constructor = klass;			if (Class.prototyping) return this;			var instance = (this.initialize) ? this.initialize.apply(this, arguments) : this;			if (this.options && this.options.initialize) this.options.initialize.call(this);			return instance;		};		for (var mutator in Class.Mutators){			if (!properties[mutator]) continue;			properties = Class.Mutators[mutator](properties, properties[mutator]);			delete properties[mutator];		}		$extend(klass, this);		klass.constructor = Class;		klass.prototype = properties;		return klass;	}});Class.Mutators = {	Extends: function(self, klass){		Class.prototyping = klass.prototype;		var subclass = new klass;		delete subclass.parent;		subclass = Class.inherit(subclass, self);		delete Class.prototyping;		return subclass;	},	Implements: function(self, klasses){		$splat(klasses).each(function(klass){			Class.prototying = klass;			$extend(self, ($type(klass) == 'class') ? new klass : klass);			delete Class.prototyping;		});		return self;	}};Class.extend({	inherit: function(object, properties){		var caller = arguments.callee.caller;		for (var key in properties){			var override = properties[key];			var previous = object[key];			var type = $type(override);			if (previous && type == 'function'){				if (override != previous){					if (caller){						override.__parent = previous;						object[key] = override;					} else {						Class.override(object, key, override);					}				}			} else if(type == 'object'){				object[key] = $merge(previous, override);			} else {				object[key] = override;			}		}		if (caller) object.parent = function(){			return arguments.callee.caller.__parent.apply(this, arguments);		};		return object;	},	override: function(object, name, method){		var parent = Class.prototyping;		if (parent && object[name] != parent[name]) parent = null;		var override = function(){			var previous = this.parent;			this.parent = parent ? parent[name] : object[name];			var value = method.apply(this, arguments);			this.parent = previous;			return value;		};		object[name] = override;	}});Class.implement({	implement: function(){		var proto = this.prototype;		$each(arguments, function(properties){			Class.inherit(proto, properties);		});		return this;	}});/*Script: Class.Extras.js	Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.License:	MIT-style license.*/var Chain = new Class({	$chain: [],	chain: function(){		this.$chain.extend(Array.flatten(arguments));		return this;	},	callChain: function(){		return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;	},	clearChain: function(){		this.$chain.empty();		return this;	}});var Events = new Class({	$events: {},	addEvent: function(type, fn, internal){		type = Events.removeOn(type);		if (fn != $empty){			this.$events[type] = this.$events[type] || [];			this.$events[type].include(fn);			if (internal) fn.internal = true;		}		return this;	},	addEvents: function(events){		for (var type in events) this.addEvent(type, events[type]);		return this;	},	fireEvent: function(type, args, delay){		type = Events.removeOn(type);		if (!this.$events || !this.$events[type]) return this;		this.$events[type].each(function(fn){			fn.create({'bind': this, 'delay': delay, 'arguments': args})();		}, this);		return this;	},	removeEvent: function(type, fn){		type = Events.removeOn(type);		if (!this.$events[type]) return this;		if (!fn.internal) this.$events[type].erase(fn);		return this;	},	removeEvents: function(events){		if ($type(events) == 'object'){			for (var type in events) this.removeEvent(type, events[type]);			return this;		}		if (events) events = Events.removeOn(events);		for (var type in this.$events){			if (events && events != type) continue;			var fns = this.$events[type];			for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]);		}		return this;	}});Events.removeOn = function(string){	return string.replace(/^on([A-Z])/, function(full, first) {		return first.toLowerCase();	});};var Options = new Class({	setOptions: function(){		this.options = $merge.run([this.options].extend(arguments));		if (!this.addEvent) return this;		for (var option in this.options){			if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;			this.addEvent(option, this.options[option]);			delete this.options[option];		}		return this;	}});/*Script: Element.js	One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,	time-saver methods to let you easily work with HTML Elements.License:	MIT-style license.*/var Element = new Native({	name: 'Element',	legacy: window.Element,	initialize: function(tag, props){		var konstructor = Element.Constructors.get(tag);		if (konstructor) return konstructor(props);		if (typeof tag == 'string') return document.newElement(tag, props);		return $(tag).set(props);	},	afterImplement: function(key, value){		Element.Prototype[key] = value;		if (Array[key]) return;		Elements.implement(key, function(){			var items = [], elements = true;			for (var i = 0, j = this.length; i < j; i++){				var returns = this[i][key].apply(this[i], arguments);				items.push(returns);				if (elements) elements = ($type(returns) == 'element');			}			return (elements) ? new Elements(items) : items;		});	}});Element.Prototype = {$family: {name: 'element'}};Element.Constructors = new Hash;var IFrame = new Native({	name: 'IFrame',	generics: false,	initialize: function(){		var params = Array.link(arguments, {properties: Object.type, iframe: $defined});		var props = params.properties || {};		var iframe = $(params.iframe) || false;		var onload = props.onload || $empty;		delete props.onload;		props.id = props.name = $pick(props.id, props.name, iframe.id, iframe.name, 'IFrame_' + $time());		iframe = new Element(iframe || 'iframe', props);		var onFrameLoad = function(){			var host = $try(function(){				return iframe.contentWindow.location.host;			});			if (host && host == window.location.host){				var win = new Window(iframe.contentWindow);				new Document(iframe.contentWindow.document);				$extend(win.Element.prototype, Element.Prototype);			}			onload.call(iframe.contentWindow, iframe.contentWindow.document);		};		(window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad);		return iframe;	}});var Elements = new Native({	initialize: function(elements, options){		options = $extend({ddup: true, cash: true}, options);		elements = elements || [];		if (options.ddup || options.cash){			var uniques = {}, returned = [];			for (var i = 0, l = elements.length; i < l; i++){				var el = $.element(elements[i], !options.cash);				if (options.ddup){					if (uniques[el.uid]) continue;					uniques[el.uid] = true;				}				returned.push(el);			}			elements = returned;		}		return (options.cash) ? $extend(elements, this) : elements;	}});Elements.implement({	filter: function(filter, bind){		if (!filter) return this;		return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){			return item.match(filter);		} : filter, bind));	}});Document.implement({	newElement: function(tag, props){		if (Browser.Engine.trident && props){			['name', 'type', 'checked'].each(function(attribute){				if (!props[attribute]) return;				tag += ' ' + attribute + '="' + props[attribute] + '"';				if (attribute != 'checked') delete props[attribute];			});			tag = '<' + tag + '>';		}		return $.element(this.createElement(tag)).set(props);	},	newTextNode: function(text){		return this.createTextNode(text);	},	getDocument: function(){		return this;	},	getWindow: function(){		return this.window;	}});Window.implement({	$: function(el, nocash){		if (el && el.$family && el.uid) return el;		var type = $type(el);		return ($[type]) ? $[type](el, nocash, this.document) : null;	},	$$: function(selector){		if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);		var elements = [];		var args = Array.flatten(arguments);		for (var i = 0, l = args.length; i < l; i++){			var item = args[i];			switch ($type(item)){				case 'element': elements.push(item); break;				case 'string': elements.extend(this.document.getElements(item, true));			}		}		return new Elements(elements);	},	getDocument: function(){		return this.document;	},	getWindow: function(){		return this;	}});$.string = function(id, nocash, doc){	id = doc.getElementById(id);	return (id) ? $.element(id, nocash) : null;};$.element = function(el, nocash){	$uid(el);	if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){		var proto = Element.Prototype;		for (var p in proto) el[p] = proto[p];	};	return el;};$.object = function(obj, nocash, doc){	if (obj.toElement) return $.element(obj.toElement(doc), nocash);	return null;};$.textnode = $.whitespace = $.window = $.document = $arguments(0);Native.implement([Element, Document], {	getElement: function(selector, nocash){		return $(this.getElements(selector, true)[0] || null, nocash);	},	getElements: function(tags, nocash){		tags = tags.split(',');		var elements = [];		var ddup = (tags.length > 1);		tags.each(function(tag){			var partial = this.getElementsByTagName(tag.trim());			(ddup) ? elements.extend(partial) : elements = partial;		}, this);		return new Elements(elements, {ddup: ddup, cash: !nocash});	}});(function(){var collected = {}, storage = {};var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'};var get = function(uid){	return (storage[uid] || (storage[uid] = {}));};var clean = function(item, retain){	if (!item) return;	var uid = item.uid;	if (Browser.Engine.trident){		if (item.clearAttributes){			var clone = retain && item.cloneNode(false);			item.clearAttributes();			if (clone) item.mergeAttributes(clone);		} else if (item.removeEvents){			item.removeEvents();		}		if ((/object/i).test(item.tagName)){			for (var p in item){				if (typeof item[p] == 'function') item[p] = $empty;			}			Element.dispose(item);		}	}		if (!uid) return;	collected[uid] = storage[uid] = null;};var purge = function(){	Hash.each(collected, clean);	if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean);	if (window.CollectGarbage) CollectGarbage();	collected = storage = null;};var walk = function(element, walk, start, match, all, nocash){	var el = element[start || walk];	var elements = [];	while (el){		if (el.nodeType == 1 && (!match || Element.match(el, match))){			if (!all) return $(el, nocash);			elements.push(el);		}		el = el[walk];	}	return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null;};var attributes = {	'html': 'innerHTML',	'class': 'className',	'for': 'htmlFor',	'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent'};var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'];var camels = ['value', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap'];Hash.extend(attributes, bools.associate(bools));Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase)));var inserters = {	before: function(context, element){		if (element.parentNode) element.parentNode.insertBefore(context, element);	},	after: function(context, element){		if (!element.parentNode) return;		var next = element.nextSibling;		(next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);	},	bottom: function(context, element){		element.appendChild(context);	},	top: function(context, element){		var first = element.firstChild;		(first) ? element.insertBefore(context, first) : element.appendChild(context);	}};inserters.inside = inserters.bottom;Hash.each(inserters, function(inserter, where){	where = where.capitalize();

⌨️ 快捷键说明

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