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

📄 core.js.svn-base

📁 嵌入式无线路由系统openwrt的web配置工具
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
	Element.implement('inject' + where, function(el){		inserter(this, $(el, true));		return this;	});	Element.implement('grab' + where, function(el){		inserter($(el, true), this);		return this;	});});Element.implement({	set: function(prop, value){		switch ($type(prop)){			case 'object':				for (var p in prop) this.set(p, prop[p]);				break;			case 'string':				var property = Element.Properties.get(prop);				(property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);		}		return this;	},	get: function(prop){		var property = Element.Properties.get(prop);		return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);	},	erase: function(prop){		var property = Element.Properties.get(prop);		(property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop);		return this;	},	setProperty: function(attribute, value){		var key = attributes[attribute];		if (value == undefined) return this.removeProperty(attribute);		if (key && bools[attribute]) value = !!value;		(key) ? this[key] = value : this.setAttribute(attribute, '' + value);		return this;	},	setProperties: function(attributes){		for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);		return this;	},	getProperty: function(attribute){		var key = attributes[attribute];		var value = (key) ? this[key] : this.getAttribute(attribute, 2);		return (bools[attribute]) ? !!value : (key) ? value : value || null;	},	getProperties: function(){		var args = $A(arguments);		return args.map(this.getProperty, this).associate(args);	},	removeProperty: function(attribute){		var key = attributes[attribute];		(key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute);		return this;	},	removeProperties: function(){		Array.each(arguments, this.removeProperty, this);		return this;	},	hasClass: function(className){		return this.className.contains(className, ' ');	},	addClass: function(className){		if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();		return this;	},	removeClass: function(className){		this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1');		return this;	},	toggleClass: function(className){		return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);	},	adopt: function(){		Array.flatten(arguments).each(function(element){			element = $(element, true);			if (element) this.appendChild(element);		}, this);		return this;	},	appendText: function(text, where){		return this.grab(this.getDocument().newTextNode(text), where);	},	grab: function(el, where){		inserters[where || 'bottom']($(el, true), this);		return this;	},	inject: function(el, where){		inserters[where || 'bottom'](this, $(el, true));		return this;	},	replaces: function(el){		el = $(el, true);		el.parentNode.replaceChild(this, el);		return this;	},	wraps: function(el, where){		el = $(el, true);		return this.replaces(el).grab(el, where);	},	getPrevious: function(match, nocash){		return walk(this, 'previousSibling', null, match, false, nocash);	},	getAllPrevious: function(match, nocash){		return walk(this, 'previousSibling', null, match, true, nocash);	},	getNext: function(match, nocash){		return walk(this, 'nextSibling', null, match, false, nocash);	},	getAllNext: function(match, nocash){		return walk(this, 'nextSibling', null, match, true, nocash);	},	getFirst: function(match, nocash){		return walk(this, 'nextSibling', 'firstChild', match, false, nocash);	},	getLast: function(match, nocash){		return walk(this, 'previousSibling', 'lastChild', match, false, nocash);	},	getParent: function(match, nocash){		return walk(this, 'parentNode', null, match, false, nocash);	},	getParents: function(match, nocash){		return walk(this, 'parentNode', null, match, true, nocash);	},	getChildren: function(match, nocash){		return walk(this, 'nextSibling', 'firstChild', match, true, nocash);	},	getWindow: function(){		return this.ownerDocument.window;	},	getDocument: function(){		return this.ownerDocument;	},	getElementById: function(id, nocash){		var el = this.ownerDocument.getElementById(id);		if (!el) return null;		for (var parent = el.parentNode; parent != this; parent = parent.parentNode){			if (!parent) return null;		}		return $.element(el, nocash);	},	getSelected: function(){		return new Elements($A(this.options).filter(function(option){			return option.selected;		}));	},	getComputedStyle: function(property){		if (this.currentStyle) return this.currentStyle[property.camelCase()];		var computed = this.getDocument().defaultView.getComputedStyle(this, null);		return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;	},	toQueryString: function(){		var queryString = [];		this.getElements('input, select, textarea', true).each(function(el){			if (!el.name || el.disabled) return;			var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){				return opt.value;			}) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;			$splat(value).each(function(val){				if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val));			});		});		return queryString.join('&');	},	clone: function(contents, keepid){		contents = contents !== false;		var clone = this.cloneNode(contents);		var clean = function(node, element){			if (!keepid) node.removeAttribute('id');			if (Browser.Engine.trident){				node.clearAttributes();				node.mergeAttributes(element);				node.removeAttribute('uid');				if (node.options){					var no = node.options, eo = element.options;					for (var j = no.length; j--;) no[j].selected = eo[j].selected;				}			}			var prop = props[element.tagName.toLowerCase()];			if (prop && element[prop]) node[prop] = element[prop];		};		if (contents){			var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*');			for (var i = ce.length; i--;) clean(ce[i], te[i]);		}		clean(clone, this);		return $(clone);	},	destroy: function(){		Element.empty(this);		Element.dispose(this);		clean(this, true);		return null;	},	empty: function(){		$A(this.childNodes).each(function(node){			Element.destroy(node);		});		return this;	},	dispose: function(){		return (this.parentNode) ? this.parentNode.removeChild(this) : this;	},	hasChild: function(el){		el = $(el, true);		if (!el) return false;		if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el);		return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16);	},	match: function(tag){		return (!tag || (tag == this) || (Element.get(this, 'tag') == tag));	}});Native.implement([Element, Window, Document], {	addListener: function(type, fn){		if (type == 'unload'){			var old = fn, self = this;			fn = function(){				self.removeListener('unload', fn);				old();			};		} else {			collected[this.uid] = this;		}		if (this.addEventListener) this.addEventListener(type, fn, false);		else this.attachEvent('on' + type, fn);		return this;	},	removeListener: function(type, fn){		if (this.removeEventListener) this.removeEventListener(type, fn, false);		else this.detachEvent('on' + type, fn);		return this;	},	retrieve: function(property, dflt){		var storage = get(this.uid), prop = storage[property];		if (dflt != undefined && prop == undefined) prop = storage[property] = dflt;		return $pick(prop);	},	store: function(property, value){		var storage = get(this.uid);		storage[property] = value;		return this;	},	eliminate: function(property){		var storage = get(this.uid);		delete storage[property];		return this;	}});window.addListener('unload', purge);})();Element.Properties = new Hash;Element.Properties.style = {	set: function(style){		this.style.cssText = style;	},	get: function(){		return this.style.cssText;	},	erase: function(){		this.style.cssText = '';	}};Element.Properties.tag = {	get: function(){		return this.tagName.toLowerCase();	}};Element.Properties.html = (function(){	var wrapper = document.createElement('div');	var translations = {		table: [1, '<table>', '</table>'],		select: [1, '<select>', '</select>'],		tbody: [2, '<table><tbody>', '</tbody></table>'],		tr: [3, '<table><tbody><tr>', '</tr></tbody></table>']	};	translations.thead = translations.tfoot = translations.tbody;	var html = {		set: function(){			var html = Array.flatten(arguments).join('');			var wrap = Browser.Engine.trident && translations[this.get('tag')];			if (wrap){				var first = wrapper;				first.innerHTML = wrap[1] + html + wrap[2];				for (var i = wrap[0]; i--;) first = first.firstChild;				this.empty().adopt(first.childNodes);			} else {				this.innerHTML = html;			}		}	};	html.erase = html.set;	return html;})();if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = {	get: function(){		if (this.innerText) return this.innerText;		var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body);		var text = temp.innerText;		temp.destroy();		return text;	}};/*Script: Element.Event.js	Contains Element methods for dealing with events, and custom Events.License:	MIT-style license.*/Element.Properties.events = {set: function(events){	this.addEvents(events);}};Native.implement([Element, Window, Document], {	addEvent: function(type, fn){		var events = this.retrieve('events', {});		events[type] = events[type] || {'keys': [], 'values': []};		if (events[type].keys.contains(fn)) return this;		events[type].keys.push(fn);		var realType = type, custom = Element.Events.get(type), condition = fn, self = this;		if (custom){			if (custom.onAdd) custom.onAdd.call(this, fn);			if (custom.condition){				condition = function(event){					if (custom.condition.call(this, event)) return fn.call(this, event);					return true;				};			}			realType = custom.base || realType;		}		var defn = function(){			return fn.call(self);		};		var nativeEvent = Element.NativeEvents[realType];		if (nativeEvent){			if (nativeEvent == 2){				defn = function(event){					event = new Event(event, self.getWindow());					if (condition.call(self, event) === false) event.stop();				};			}			this.addListener(realType, defn);		}		events[type].values.push(defn);		return this;	},	removeEvent: function(type, fn){		var events = this.retrieve('events');		if (!events || !events[type]) return this;		var pos = events[type].keys.indexOf(fn);		if (pos == -1) return this;		events[type].keys.splice(pos, 1);		var value = events[type].values.splice(pos, 1)[0];		var custom = Element.Events.get(type);		if (custom){			if (custom.onRemove) custom.onRemove.call(this, fn);			type = custom.base || type;		}		return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;	},	addEvents: function(events){		for (var event in events) this.addEvent(event, events[event]);		return this;	},	removeEvents: function(events){		if ($type(events) == 'object'){			for (var type in events) this.removeEvent(type, events[type]);			return this;		}		var attached = this.retrieve('events');		if (!attached) return this;		if (!events){			for (var type in attached) this.removeEvents(type);			this.eliminate('events');		} else if (attached[events]){			while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]);			attached[events] = null;		}		return this;	},	fireEvent: function(type, args, delay){		var events = this.retrieve('events');		if (!events || !events[type]) return this;		events[type].keys.each(function(fn){			fn.create({'bind': this, 'delay': delay, 'arguments': args})();		}, this);		return this;	},	cloneEvents: function(from, type){		from = $(from);		var fevents = from.retrieve('events');		if (!fevents) return this;		if (!type){			for (var evType in fevents) this.cloneEvents(from, evType);		} else if (fevents[type]){			fevents[type].keys.each(function(fn){				this.addEvent(type, fn);			}, this);		}		return this;	}});Element.NativeEvents = {	click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons	mousewheel: 2, DOMMouseScroll: 2, //mouse wheel	mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement	keydown: 2, keypress: 2, keyup: 2, //keyboard	focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements	load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window	error: 1, abort: 1, scroll: 1 //misc};(function(){var $check = function(event){	var related = event.relatedTarget;	if (related == undefined) return true;	if (related === false) return false;	return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));};Element.Events = new Hash({	mouseenter: {		base: 'mouseover',		condition: $check	},	mouseleave: {		base: 'mouseout',		condition: $check	},	mousewheel: {		base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'

⌨️ 快捷键说明

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