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

📄 domlib.js

📁 It is program for chat using Server and client chat :]
💻 JS
📖 第 1 页 / 共 2 页
字号:
/** $Id: domLib.js,v 1.1 2006/12/26 08:24:23 linhdh Exp $ */// {{{ license/* * Copyright 2002-2005 Dan Allen, Mojavelinux.com (dan.allen@mojavelinux.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */// }}}// {{{ intro/** * Title: DOM Library Core * Version: 0.72 * * Summary: * A set of commonly used functions that make it easier to create javascript * applications that rely on the DOM. * * Updated: $Date: 2006/12/26 08:24:23 $ * * Maintainer: Dan Allen <dan.allen@mojavelinux.com> * Maintainer: Jason Rust <jrust@rustyparts.com> * * License: Apache 2.0 */// }}}// {{{ browser detection// Formal browser detect library, courtesy of QuirksMode (http://www.quirksmode.org/js/detect.html)var BrowserDetect = {	init: function () {		this.engine = "unknown engine";		this.browser = this.searchString(this.dataBrowser) || "unknown browser";		this.version = this.searchVersion(navigator.userAgent)			|| this.searchVersion(navigator.appVersion)			|| "unknown version";		this.OS = this.searchString(this.dataOS) || "unknown OS";		this.mode = (document.compatMode && document.compatMode == 'CSS1Compat' ? 'Strict' : 'Quirks');	},	searchString: function (data) {		for (var i = 0; i < data.length; i++)	{			var dataString = data[i].string;			var dataProp = data[i].prop;			this.versionSearchString = data[i].versionSearch || data[i].identity;			if (dataString) {				if (dataString.indexOf(data[i].subString) != -1) {					if (data[i].engine) {						this.engine = data[i].engine;					}					return data[i].identity;				}				}			else if (dataProp) {				if (data[i].engine) {					this.engine = data[i].engine;				}				return data[i].identity;			}				}	},	searchVersion: function (dataString) {		var index = dataString.indexOf(this.versionSearchString);		if (index == -1) {			return;		}		return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));	},	dataBrowser: [		{			string: navigator.userAgent,			subString: "OmniWeb",			versionSearch: "OmniWeb/",			identity: "OmniWeb",			engine: "WebCore"		},		{			// khtml browsers may use string "khtml, like gecko"			string: navigator.vendor,			subString: "Apple",			identity: "Safari",			engine: "KHTML"		},		{			prop: window.opera,			identity: "Opera",			engine: "Presto"		},		{			string: navigator.vendor,			subString: "iCab",			identity: "iCab",			engine: "iCab"		},		{			// khtml browsers may use string "khtml, like gecko"			string: navigator.vendor,			subString: "KDE",			identity: "Konqueror",			engine: "KHTML"		},		{			string: navigator.userAgent,			subString: "Firefox",			identity: "Firefox",			engine: "Gecko"		},		{			string: navigator.vendor,			subString: "Camino",			identity: "Camino",			engine: "Gecko"		},		{			string: navigator.userAgent,			subString: "Netscape",			identity: "Netscape",			engine: "Gecko"		},		{			string: navigator.userAgent,			subString: "MSIE",			identity: "Explorer",			versionSearch: "MSIE",			engine: "Trident"		},		{			string: navigator.userAgent,			subString: "Gecko",			identity: "Mozilla",			versionSearch: "rv",			engine: "Gecko"		},		{			string: navigator.userAgent,			subString: "Mozilla",			identity: "Netscape",			versionSearch: "Mozilla"		}	],	dataOS : [		{			string: navigator.platform,			subString: "Win",			identity: "Windows"		},		{			string: navigator.platform,			subString: "Mac",			identity: "Mac"		},		{			string: navigator.platform,			subString: "Linux",			identity: "Linux"		}	]};BrowserDetect.init();// }}}// {{{ global constants (DO NOT EDIT)// -- Browser Identity Flags --var domLib_isMac = BrowserDetect.OS == 'Mac';var domLib_isWin = BrowserDetect.OS == 'Windows';var domLib_isGecko = BrowserDetect.engine == 'Gecko';var domLib_isOpera = BrowserDetect.browser == 'Opera';var domLib_isSafari = BrowserDetect.browser == 'Safari';var domLib_isKonq = BrowserDetect.browser == 'Konqueror';var domLib_isKHTML = BrowserDetect.engine == 'KHTML';var domLib_isIE = BrowserDetect.browser == 'Explorer';var domLib_isIE50 = (domLib_isIE && BrowserDetect.version == 5);var domLib_isIE5 = (domLib_isIE && BrowserDetect.version >= 5 && BrowserDetect.version < 6);var domLib_isMacIE = (domLib_isIE && domLib_isMac);// -- Browser Abilities --var domLib_standardsMode = BrowserDetect.mode == 'Strict';var domLib_useLibrary = ((domLib_isOpera && BrowserDetect.version >= 7) || domLib_isKHTML ||	(domLib_isIE && BrowserDetect.version >= 5) || domLib_isGecko || domLib_isMacIE || document.defaultView);// fixed in Konq3.2var domLib_hasBrokenTimeout = (domLib_isMacIE || (domLib_isKonq && BrowserDetect.version >= 3.2));var domLib_canFade = (domLib_isGecko || domLib_isIE || domLib_isSafari || domLib_isOpera);var domLib_canDrawOverSelect = ((domLib_isIE && BrowserDetect.version >= 7) || domLib_isMac || domLib_isOpera || domLib_isGecko);var domLib_canDrawOverFlash = (domLib_isMac || domLib_isWin);var domLib_detectObstructionsEnabled = true;// -- Event Variables --var domLib_eventTarget = domLib_isIE ? 'srcElement' : 'currentTarget';var domLib_eventButton = domLib_isIE ? 'button' : 'which';var domLib_eventTo = domLib_isIE ? 'toElement' : 'relatedTarget';var domLib_stylePointer = domLib_isIE ? 'hand' : 'pointer';// NOTE: a bug exists in Opera that prevents maxWidth from being set to 'none', so we make it hugevar domLib_styleNoMaxWidth = domLib_isOpera ? '10000px' : 'none';var domLib_hidePosition = '-1000px';var domLib_scrollbarWidth = 14;var domLib_autoId = 1;var domLib_zIndex = 100;// -- Detection --var domLib_collisionElements;var domLib_collisionsCached = false;var domLib_timeoutStateId = 0;var domLib_timeoutStates = new Hash();// }}}// {{{ DOM enhancementsif (!document.ELEMENT_NODE){	document.ELEMENT_NODE = 1;	document.ATTRIBUTE_NODE = 2;	document.TEXT_NODE = 3;	document.DOCUMENT_NODE = 9;	document.DOCUMENT_FRAGMENT_NODE = 11;}function domLib_clone(obj){	var copy = {};	for (var i in obj)	{		var value = obj[i];		try		{			if (value != null && typeof(value) == 'object' && value != window && !value.nodeType)			{				copy[i] = domLib_clone(value);			}			else			{				copy[i] = value;			}		}		catch(e)		{			copy[i] = value;		}	}	return copy;}// }}}// {{{ class Hash()function Hash(){	this.length = 0;	this.numericLength = 0; 	this.elementData = [];	for (var i = 0; i < arguments.length; i += 2)	{		if (typeof(arguments[i + 1]) != 'undefined')		{			this.elementData[arguments[i]] = arguments[i + 1];			this.length++;			if (arguments[i] == parseInt(arguments[i])) 			{				this.numericLength++;			}		}	}}// using prototype as opposed to inner functions saves on memory Hash.prototype.get = function(in_key){	if (typeof(this.elementData[in_key]) != 'undefined') {		return this.elementData[in_key];	}	return null;}Hash.prototype.set = function(in_key, in_value){	if (typeof(in_value) != 'undefined')	{		if (typeof(this.elementData[in_key]) == 'undefined')		{			this.length++;			if (in_key == parseInt(in_key)) 			{				this.numericLength++;			}		}		return this.elementData[in_key] = in_value;	}	return false;}Hash.prototype.remove = function(in_key){	var tmp_value;	if (typeof(this.elementData[in_key]) != 'undefined')	{		this.length--;		if (in_key == parseInt(in_key)) 		{			this.numericLength--;		}		tmp_value = this.elementData[in_key];		delete this.elementData[in_key];	}	return tmp_value;}Hash.prototype.size = function(){	return this.length;}Hash.prototype.has = function(in_key){	return typeof(this.elementData[in_key]) != 'undefined';}Hash.prototype.find = function(in_obj){	for (var tmp_key in this.elementData) 	{		if (this.elementData[tmp_key] == in_obj) 		{			return tmp_key;		}	}	return null;}Hash.prototype.merge = function(in_hash){	for (var tmp_key in in_hash.elementData) 	{		if (typeof(this.elementData[tmp_key]) == 'undefined') 		{			this.length++;			if (tmp_key == parseInt(tmp_key)) 			{				this.numericLength++;			}		}		this.elementData[tmp_key] = in_hash.elementData[tmp_key];	}}Hash.prototype.compare = function(in_hash){	if (this.length != in_hash.length) 	{		return false;	}	for (var tmp_key in this.elementData) 	{		if (this.elementData[tmp_key] != in_hash.elementData[tmp_key]) 		{			return false;		}	}		return true;}// }}}// {{{ domLib_isDescendantOf()function domLib_isDescendantOf(in_object, in_ancestor, in_bannedTags){	if (in_object == null)	{		return false;	}	if (in_object == in_ancestor)	{		return true;	}	if (typeof(in_bannedTags) != 'undefined' &&		(',' + in_bannedTags.join(',') + ',').indexOf(',' + in_object.tagName + ',') != -1)	{		return false;	}	while (in_object != document.documentElement)	{		try		{			if ((tmp_object = in_object.offsetParent) && tmp_object == in_ancestor)			{				return true;			}			else if ((tmp_object = in_object.parentNode) == in_ancestor)			{				return true;			}			else

⌨️ 快捷键说明

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