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

📄 style.js

📁 初学者
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.html.style");dojo.require("dojo.html.common");dojo.require("dojo.uri.Uri");dojo.html.getClass = function (node) {	node = dojo.byId(node);	if (!node) {		return "";	}	var cs = "";	if (node.className) {		cs = node.className;	} else {		if (dojo.html.hasAttribute(node, "class")) {			cs = dojo.html.getAttribute(node, "class");		}	}	return cs.replace(/^\s+|\s+$/g, "");};dojo.html.getClasses = function (node) {	var c = dojo.html.getClass(node);	return (c == "") ? [] : c.split(/\s+/g);};dojo.html.hasClass = function (node, classname) {	return (new RegExp("(^|\\s+)" + classname + "(\\s+|$)")).test(dojo.html.getClass(node));};dojo.html.prependClass = function (node, classStr) {	classStr += " " + dojo.html.getClass(node);	return dojo.html.setClass(node, classStr);};dojo.html.addClass = function (node, classStr) {	if (dojo.html.hasClass(node, classStr)) {		return false;	}	classStr = (dojo.html.getClass(node) + " " + classStr).replace(/^\s+|\s+$/g, "");	return dojo.html.setClass(node, classStr);};dojo.html.setClass = function (node, classStr) {	node = dojo.byId(node);	var cs = new String(classStr);	try {		if (typeof node.className == "string") {			node.className = cs;		} else {			if (node.setAttribute) {				node.setAttribute("class", classStr);				node.className = cs;			} else {				return false;			}		}	}	catch (e) {		dojo.debug("dojo.html.setClass() failed", e);	}	return true;};dojo.html.removeClass = function (node, classStr, allowPartialMatches) {	try {		if (!allowPartialMatches) {			var newcs = dojo.html.getClass(node).replace(new RegExp("(^|\\s+)" + classStr + "(\\s+|$)"), "$1$2");		} else {			var newcs = dojo.html.getClass(node).replace(classStr, "");		}		dojo.html.setClass(node, newcs);	}	catch (e) {		dojo.debug("dojo.html.removeClass() failed", e);	}	return true;};dojo.html.replaceClass = function (node, newClass, oldClass) {	dojo.html.removeClass(node, oldClass);	dojo.html.addClass(node, newClass);};dojo.html.classMatchType = {ContainsAll:0, ContainsAny:1, IsOnly:2};dojo.html.getElementsByClass = function (classStr, parent, nodeType, classMatchType, useNonXpath) {	useNonXpath = false;	var _document = dojo.doc();	parent = dojo.byId(parent) || _document;	var classes = classStr.split(/\s+/g);	var nodes = [];	if (classMatchType != 1 && classMatchType != 2) {		classMatchType = 0;	}	var reClass = new RegExp("(\\s|^)((" + classes.join(")|(") + "))(\\s|$)");	var srtLength = classes.join(" ").length;	var candidateNodes = [];	if (!useNonXpath && _document.evaluate) {		var xpath = ".//" + (nodeType || "*") + "[contains(";		if (classMatchType != dojo.html.classMatchType.ContainsAny) {			xpath += "concat(' ',@class,' '), ' " + classes.join(" ') and contains(concat(' ',@class,' '), ' ") + " ')";			if (classMatchType == 2) {				xpath += " and string-length(@class)=" + srtLength + "]";			} else {				xpath += "]";			}		} else {			xpath += "concat(' ',@class,' '), ' " + classes.join(" ') or contains(concat(' ',@class,' '), ' ") + " ')]";		}		var xpathResult = _document.evaluate(xpath, parent, null, XPathResult.ANY_TYPE, null);		var result = xpathResult.iterateNext();		while (result) {			try {				candidateNodes.push(result);				result = xpathResult.iterateNext();			}			catch (e) {				break;			}		}		return candidateNodes;	} else {		if (!nodeType) {			nodeType = "*";		}		candidateNodes = parent.getElementsByTagName(nodeType);		var node, i = 0;	outer:		while (node = candidateNodes[i++]) {			var nodeClasses = dojo.html.getClasses(node);			if (nodeClasses.length == 0) {				continue outer;			}			var matches = 0;			for (var j = 0; j < nodeClasses.length; j++) {				if (reClass.test(nodeClasses[j])) {					if (classMatchType == dojo.html.classMatchType.ContainsAny) {						nodes.push(node);						continue outer;					} else {						matches++;					}				} else {					if (classMatchType == dojo.html.classMatchType.IsOnly) {						continue outer;					}				}			}			if (matches == classes.length) {				if ((classMatchType == dojo.html.classMatchType.IsOnly) && (matches == nodeClasses.length)) {					nodes.push(node);				} else {					if (classMatchType == dojo.html.classMatchType.ContainsAll) {						nodes.push(node);					}				}			}		}		return nodes;	}};dojo.html.getElementsByClassName = dojo.html.getElementsByClass;dojo.html.toCamelCase = function (selector) {	var arr = selector.split("-"), cc = arr[0];	for (var i = 1; i < arr.length; i++) {		cc += arr[i].charAt(0).toUpperCase() + arr[i].substring(1);	}	return cc;};dojo.html.toSelectorCase = function (selector) {	return selector.replace(/([A-Z])/g, "-$1").toLowerCase();};if (dojo.render.html.ie) {	dojo.html.getComputedStyle = function (node, property, value) {		node = dojo.byId(node);		if (!node || !node.currentStyle) {			return value;		}		return node.currentStyle[dojo.html.toCamelCase(property)];	};	dojo.html.getComputedStyles = function (node) {		return node.currentStyle;	};} else {	dojo.html.getComputedStyle = function (node, property, value) {		node = dojo.byId(node);		if (!node || !node.style) {			return value;		}		var s = document.defaultView.getComputedStyle(node, null);		return (s && s[dojo.html.toCamelCase(property)]) || "";	};	dojo.html.getComputedStyles = function (node) {		return document.defaultView.getComputedStyle(node, null);	};}dojo.html.getStyleProperty = function (node, cssSelector) {	node = dojo.byId(node);	return (node && node.style ? node.style[dojo.html.toCamelCase(cssSelector)] : undefined);};dojo.html.getStyle = function (node, cssSelector) {	var value = dojo.html.getStyleProperty(node, cssSelector);	return (value ? value : dojo.html.getComputedStyle(node, cssSelector));};dojo.html.setStyle = function (node, cssSelector, value) {	node = dojo.byId(node);	if (node && node.style) {		var camelCased = dojo.html.toCamelCase(cssSelector);		node.style[camelCased] = value;	}};dojo.html.setStyleText = function (target, text) {	try {		target.style.cssText = text;	}	catch (e) {		target.setAttribute("style", text);	}};dojo.html.copyStyle = function (target, source) {	if (!source.style.cssText) {		target.setAttribute("style", source.getAttribute("style"));	} else {		target.style.cssText = source.style.cssText;	}	dojo.html.addClass(target, dojo.html.getClass(source));};dojo.html.getUnitValue = function (node, cssSelector, autoIsZero) {	var s = dojo.html.getComputedStyle(node, cssSelector);	if ((!s) || ((s == "auto") && (autoIsZero))) {		return {value:0, units:"px"};	}	var match = s.match(/(\-?[\d.]+)([a-z%]*)/i);	if (!match) {		return dojo.html.getUnitValue.bad;	}	return {value:Number(match[1]), units:match[2].toLowerCase()};};dojo.html.getUnitValue.bad = {value:NaN, units:""};if (dojo.render.html.ie) {	dojo.html.toPixelValue = function (element, styleValue) {		if (!styleValue) {			return 0;		}		if (styleValue.slice(-2) == "px") {			return parseFloat(styleValue);		}		var pixelValue = 0;		with (element) {			var sLeft = style.left;			var rsLeft = runtimeStyle.left;			runtimeStyle.left = currentStyle.left;			try {				style.left = styleValue || 0;				pixelValue = style.pixelLeft;				style.left = sLeft;				runtimeStyle.left = rsLeft;			}			catch (e) {			}		}		return pixelValue;	};} else {	dojo.html.toPixelValue = function (element, styleValue) {		return (styleValue && (styleValue.slice(-2) == "px") ? parseFloat(styleValue) : 0);	};}dojo.html.getPixelValue = function (node, styleProperty, autoIsZero) {	return dojo.html.toPixelValue(node, dojo.html.getComputedStyle(node, styleProperty));};dojo.html.setPositivePixelValue = function (node, selector, value) {	if (isNaN(value)) {		return false;	}	node.style[selector] = Math.max(0, value) + "px";	return true;};dojo.html.styleSheet = null;dojo.html.insertCssRule = function (selector, declaration, index) {	if (!dojo.html.styleSheet) {		if (document.createStyleSheet) {			dojo.html.styleSheet = document.createStyleSheet();		} else {			if (document.styleSheets[0]) {				dojo.html.styleSheet = document.styleSheets[0];			} else {				return null;			}		}	}	if (arguments.length < 3) {		if (dojo.html.styleSheet.cssRules) {			index = dojo.html.styleSheet.cssRules.length;		} else {			if (dojo.html.styleSheet.rules) {				index = dojo.html.styleSheet.rules.length;			} else {				return null;			}		}	}	if (dojo.html.styleSheet.insertRule) {		var rule = selector + " { " + declaration + " }";		return dojo.html.styleSheet.insertRule(rule, index);	} else {		if (dojo.html.styleSheet.addRule) {			return dojo.html.styleSheet.addRule(selector, declaration, index);		} else {			return null;		}	}};dojo.html.removeCssRule = function (index) {	if (!dojo.html.styleSheet) {		dojo.debug("no stylesheet defined for removing rules");		return false;	}	if (dojo.render.html.ie) {		if (!index) {			index = dojo.html.styleSheet.rules.length;			dojo.html.styleSheet.removeRule(index);		}	} else {		if (document.styleSheets[0]) {			if (!index) {				index = dojo.html.styleSheet.cssRules.length;			}			dojo.html.styleSheet.deleteRule(index);		}	}	return true;};dojo.html._insertedCssFiles = [];dojo.html.insertCssFile = function (URI, doc, checkDuplicates, fail_ok) {	if (!URI) {		return;	}	if (!doc) {		doc = document;	}	var cssStr = dojo.hostenv.getText(URI, false, fail_ok);	if (cssStr === null) {		return;	}	cssStr = dojo.html.fixPathsInCssText(cssStr, URI);	if (checkDuplicates) {		var idx = -1, node, ent = dojo.html._insertedCssFiles;		for (var i = 0; i < ent.length; i++) {			if ((ent[i].doc == doc) && (ent[i].cssText == cssStr)) {				idx = i;				node = ent[i].nodeRef;				break;			}		}		if (node) {			var styles = doc.getElementsByTagName("style");			for (var i = 0; i < styles.length; i++) {				if (styles[i] == node) {					return;				}			}			dojo.html._insertedCssFiles.shift(idx, 1);		}	}	var style = dojo.html.insertCssText(cssStr, doc);	dojo.html._insertedCssFiles.push({"doc":doc, "cssText":cssStr, "nodeRef":style});	if (style && djConfig.isDebug) {		style.setAttribute("dbgHref", URI);	}	return style;};dojo.html.insertCssText = function (cssStr, doc, URI) {	if (!cssStr) {		return;	}	if (!doc) {		doc = document;	}	if (URI) {		cssStr = dojo.html.fixPathsInCssText(cssStr, URI);	}	var style = doc.createElement("style");	style.setAttribute("type", "text/css");	var head = doc.getElementsByTagName("head")[0];	if (!head) {		dojo.debug("No head tag in document, aborting styles");		return;	} else {		head.appendChild(style);	}	if (style.styleSheet) {		var setFunc = function () {			try {				style.styleSheet.cssText = cssStr;			}			catch (e) {				dojo.debug(e);			}		};		if (style.styleSheet.disabled) {			setTimeout(setFunc, 10);		} else {			setFunc();		}	} else {		var cssText = doc.createTextNode(cssStr);		style.appendChild(cssText);	}	return style;};dojo.html.fixPathsInCssText = function (cssStr, URI) {	if (!cssStr || !URI) {		return;	}	var match, str = "", url = "", urlChrs = "[\\t\\s\\w\\(\\)\\/\\.\\\\'\"-:#=&?~]+";	var regex = new RegExp("url\\(\\s*(" + urlChrs + ")\\s*\\)");	var regexProtocol = /(file|https?|ftps?):\/\//;	regexTrim = new RegExp("^[\\s]*(['\"]?)(" + urlChrs + ")\\1[\\s]*?$");	if (dojo.render.html.ie55 || dojo.render.html.ie60) {		var regexIe = new RegExp("AlphaImageLoader\\((.*)src=['\"](" + urlChrs + ")['\"]");		while (match = regexIe.exec(cssStr)) {			url = match[2].replace(regexTrim, "$2");			if (!regexProtocol.exec(url)) {				url = (new dojo.uri.Uri(URI, url).toString());			}			str += cssStr.substring(0, match.index) + "AlphaImageLoader(" + match[1] + "src='" + url + "'";			cssStr = cssStr.substr(match.index + match[0].length);		}		cssStr = str + cssStr;		str = "";	}	while (match = regex.exec(cssStr)) {		url = match[1].replace(regexTrim, "$2");		if (!regexProtocol.exec(url)) {			url = (new dojo.uri.Uri(URI, url).toString());		}		str += cssStr.substring(0, match.index) + "url(" + url + ")";		cssStr = cssStr.substr(match.index + match[0].length);	}	return str + cssStr;};dojo.html.setActiveStyleSheet = function (title) {	var i = 0, a, els = dojo.doc().getElementsByTagName("link");	while (a = els[i++]) {		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {			a.disabled = true;			if (a.getAttribute("title") == title) {				a.disabled = false;			}		}	}};dojo.html.getActiveStyleSheet = function () {	var i = 0, a, els = dojo.doc().getElementsByTagName("link");	while (a = els[i++]) {		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) {			return a.getAttribute("title");		}	}	return null;};dojo.html.getPreferredStyleSheet = function () {	var i = 0, a, els = dojo.doc().getElementsByTagName("link");	while (a = els[i++]) {		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title")) {			return a.getAttribute("title");		}	}	return null;};dojo.html.applyBrowserClass = function (node) {	var drh = dojo.render.html;	var classes = {dj_ie:drh.ie, dj_ie55:drh.ie55, dj_ie6:drh.ie60, dj_ie7:drh.ie70, dj_iequirks:drh.ie && drh.quirks, dj_opera:drh.opera, dj_opera8:drh.opera && (Math.floor(dojo.render.version) == 8), dj_opera9:drh.opera && (Math.floor(dojo.render.version) == 9), dj_khtml:drh.khtml, dj_safari:drh.safari, dj_gecko:drh.mozilla};	for (var p in classes) {		if (classes[p]) {			dojo.html.addClass(node, p);		}	}};

⌨️ 快捷键说明

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