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

📄 html.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
📖 第 1 页 / 共 2 页
字号:
if(!dojo._hasResource["dojox.dtl.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.dtl.html"] = true;dojo.provide("dojox.dtl.html");dojo.require("dojox.dtl._base");dojo.require("dojox.dtl.Context");(function(){	var dd = dojox.dtl;	var ddt = dd.text;	var ddh = dd.html = {		types: dojo.mixin({change: -11, attr: -12, custom: -13, elem: 1, text: 3}, ddt.types),		_attributes: {},		_re4: /^function anonymous\(\)\s*{\s*(.*)\s*}$/,		getTemplate: function(text){			if(typeof this._commentable == "undefined"){				// Check to see if the browser can handle comments				this._commentable = false;				var div = document.createElement("div");				div.innerHTML = "<!--Test comment handling, and long comments, using comments whenever possible.-->";				if(div.childNodes.length && div.childNodes[0].nodeType == 8 && div.childNodes[0].data == "comment"){					this._commentable = true;				}			}			if(!this._commentable){				// Strip comments				text = text.replace(/<!--({({|%).*?(%|})})-->/g, "$1");			}			var match;			var pairs = [				[true, "select", "option"],				[dojo.isSafari, "tr", "th"],				[dojo.isSafari, "tr", "td"],				[dojo.isSafari, "thead", "tr", "th"],				[dojo.isSafari, "tbody", "tr", "td"]			];			// Some tags can't contain text. So we wrap the text in tags that they can have.			for(var i = 0, pair; pair = pairs[i]; i++){				if(!pair[0]){					continue;				}				if(text.indexOf("<" + pair[1]) != -1){					var selectRe = new RegExp("<" + pair[1] + "[\\s\\S]*?>([\\s\\S]+?)</" + pair[1] + ">", "ig");					while(match = selectRe.exec(text)){						// Do it like this to make sure we don't double-wrap						var found = false;						var tokens = dojox.string.tokenize(match[1], new RegExp("(<" + pair[2] + "[\\s\\S]*?>[\\s\\S]*?</" + pair[2] + ">)", "ig"), function(child){ found = true; return {data: child}; });						if(found){							var replace = [];							for(var j = 0; j < tokens.length; j++) {								if(dojo.isObject(tokens[j])){									replace.push(tokens[j].data);								}else{									var close = pair[pair.length - 1];									var k, replacement = "";									for(k = 2; k < pair.length - 1; k++){										replacement += "<" + pair[k] + ">";									}									replacement += "<" + close + ' iscomment="true">' + dojo.trim(tokens[j]) + "</" + close + ">";									for(k = 2; k < pair.length - 1; k++){										replacement += "</" + pair[k] + ">";									}									replace.push(replacement);								}							}							text = text.replace(match[1], replace.join(""));						}					}				}			}			var re = /\b([a-zA-Z]+)=['"]/g;			while(match = re.exec(text)){				this._attributes[match[1].toLowerCase()] = true;			}			var div = document.createElement("div");			div.innerHTML = text;			var output = {nodes: []};			while(div.childNodes.length){				output.nodes.push(div.removeChild(div.childNodes[0]))			}			return output;		},		tokenize: function(/*Node*/ nodes){			var tokens = [];			for(var i = 0, node; node = nodes[i++];){				if(node.nodeType != 1){					this.__tokenize(node, tokens);				}else{					this._tokenize(node, tokens);				}			}			return tokens;		},		_swallowed: [],		_tokenize: function(/*Node*/ node, /*Array*/ tokens){			var types = this.types;			var first = false;			var swallowed = this._swallowed;			var i, j, tag, child;			if(!tokens.first){				// Try to efficiently associate tags that use an attribute to				// remove the node from DOM (eg dojoType) so that we can efficiently				// locate them later in the tokenizing.				first = tokens.first = true;				var tags = dd.register.getAttributeTags();				for(i = 0; tag = tags[i]; i++){					try{						(tag[2])({ swallowNode: function(){ throw 1; }}, "");					}catch(e){						swallowed.push(tag);					}				}			}			for(i = 0; tag = swallowed[i]; i++){				var text = node.getAttribute(tag[0]);				if(text){					var swallowed = false;					var custom = (tag[2])({ swallowNode: function(){ swallowed = true; return node; }}, text);					if(swallowed){						if(node.parentNode && node.parentNode.removeChild){							node.parentNode.removeChild(node);						}						tokens.push([types.custom, custom]);						return;					}				}			}			var children = [];			if(dojo.isIE && node.tagName == "SCRIPT"){				children.push({					nodeType: 3,					data: node.text				});				node.text = "";			}else{				for(i = 0; child = node.childNodes[i]; i++){					children.push(child);				}			}			tokens.push([types.elem, node]);			var change = false;			if(children.length){				// Only do a change request if we need to				tokens.push([types.change, node]);				change = true;			}			for(var key in this._attributes){				var value = "";				if(key == "class"){					value = node.className || value;				}else if(key == "for"){					value = node.htmlFor || value;				}else if(key == "value" && node.value == node.innerHTML){					// Sometimes .value is set the same as the contents of the item (button)					continue;				}else if(node.getAttribute){					value = node.getAttribute(key, 2) || value;					if(key == "href" || key == "src"){						if(dojo.isIE){							var hash = location.href.lastIndexOf(location.hash);							var href = location.href.substring(0, hash).split("/");							href.pop();							href = href.join("/") + "/";							if(value.indexOf(href) == 0){								value = value.replace(href, "");							}							value = decodeURIComponent(value);						}						if(value.indexOf("{%") != -1 || value.indexOf("{{") != -1){							node.setAttribute(key, "");						}					}				}				if(typeof value == "function"){					value = value.toString().replace(this._re4, "$1");				}				if(!change){					// Only do a change request if we need to					tokens.push([types.change, node]);					change = true;				}				// We'll have to resolve attributes during parsing				tokens.push([types.attr, node, key, value]);			}			for(i = 0, child; child = children[i]; i++){				if(child.nodeType == 1 && child.getAttribute("iscomment")){					child.parentNode.removeChild(child);					child = {						nodeType: 8,						data: child.innerHTML					};				}				this.__tokenize(child, tokens);			}			if(!first && node.parentNode && node.parentNode.tagName){				if(change){					tokens.push([types.change, node, true]);				}				tokens.push([types.change, node.parentNode]);				node.parentNode.removeChild(node);			}else{				// If this node is parentless, it's a base node, so we have to "up" change to itself				// and note that it's a top-level to watch for errors				tokens.push([types.change, node, true, true]);			}		},		__tokenize: function(child, tokens){			var types = this.types;			var data = child.data;			switch(child.nodeType){				case 1:					this._tokenize(child, tokens);					return;				case 3:					if(data.match(/[^\s\n]/) && (data.indexOf("{{") != -1 || data.indexOf("{%") != -1)){						var texts = ddt.tokenize(data);						for(var j = 0, text; text = texts[j]; j++){							if(typeof text == "string"){								tokens.push([types.text, text]);							}else{								tokens.push(text);							}						}					}else{						tokens.push([child.nodeType, child]);					}					if(child.parentNode) child.parentNode.removeChild(child);					return;				case 8:					if(data.indexOf("{%") == 0){						var text = dojo.trim(data.slice(2, -2));						if(text.substr(0, 5) == "load "){							var parts = dd.text.pySplit(dojo.trim(text));							for(var i = 1, part; part = parts[i]; i++){								dojo["require"](part);							}						}						tokens.push([types.tag, text]);					}					if(data.indexOf("{{") == 0){						tokens.push([types.varr, dojo.trim(data.slice(2, -2))]);					}					if(child.parentNode) child.parentNode.removeChild(child);					return;			}		}	};	dd.HtmlTemplate = dojo.extend(function(/*String|DOMNode|dojo._Url*/ obj){		// summary: Use this object for HTML templating		if(!obj.nodes){			var node = dojo.byId(obj);			if(node){				dojo.forEach(["class", "src", "href", "name", "value"], function(item){					ddh._attributes[item] = true;				});				obj = {					nodes: [node]				};			}else{				if(typeof obj == "object"){					obj = ddt.getTemplateString(obj);				}				obj = ddh.getTemplate(obj);			}		}		var tokens = ddh.tokenize(obj.nodes);		if(dd.tests){			this.tokens = tokens.slice(0);		}		var parser = new dd._HtmlParser(tokens);		this.nodelist = parser.parse();	},	{		_count: 0,		_re: /\bdojo:([a-zA-Z0-9_]+)\b/g,		setClass: function(str){			this.getRootNode().className = str;		},		getRootNode: function(){			return this.rootNode;		},		getBuffer: function(){			return new dd.HtmlBuffer();		},		render: function(context, buffer){			buffer = buffer || this.getBuffer();			this.rootNode = null;			var output = this.nodelist.render(context || new dd.Context({}), buffer);			this.rootNode = buffer.getRootNode();			for(var i = 0, node; node = buffer._cache[i]; i++){				if(node._cache){					node._cache.length = 0;				}			}			return output;		},		unrender: function(context, buffer){			return this.nodelist.unrender(context, buffer);		}	});	dd.HtmlBuffer = dojo.extend(function(/*Node*/ parent){		// summary: Allows the manipulation of DOM		// description:		//		Use this to append a child, change the parent, or		//		change the attribute of the current node.		this._parent = parent;		this._cache = [];	},	{		concat: function(/*DOMNode*/ node){			var parent = this._parent;			if(node.parentNode && node.parentNode.tagName && parent && !parent._dirty){				return this;			}			if(node.nodeType == 1 && !this.rootNode){				this.rootNode = node || true;			}			if(!parent){				if(node.nodeType == 3 && dojo.trim(node.data)){					throw new Error("Text should not exist outside of the root node in template");				}				return this;			}			if(this._closed && (node.nodeType != 3 || dojo.trim(node.data))){				throw new Error("Content should not exist outside of the root node in template");			}			if(parent._dirty){				if(node._drawn && node.parentNode == parent){					var caches = parent._cache;					if(caches){						for(var i = 0, cache; cache = caches[i]; i++){							this.onAddNode(cache);							parent.insertBefore(cache, node);							this.onAddNodeComplete(cache);						}						caches.length = 0;					}				}				parent._dirty = false;			}			if(!parent._cache){				parent._cache = [];				this._cache.push(parent);			}			parent._dirty = true;			parent._cache.push(node);			return this;		},		remove: function(obj){			if(typeof obj == "string"){				if(this._parent){					this._parent.removeAttribute(obj);				}			}else{				if(obj.nodeType == 1 && !this.getRootNode() && !this._removed){					this._removed = true;					return this;				}				if(obj.parentNode){					this.onRemoveNode();					if(obj.parentNode){						obj.parentNode.removeChild(obj);					}				}			}			return this;		},		setAttribute: function(key, value){			if(key == "class"){				this._parent.className = value;			}else if(key == "for"){				this._parent.htmlFor = value;			}else if(this._parent.setAttribute){				this._parent.setAttribute(key, value);			}			return this;		},		addEvent: function(context, type, fn, /*Array|Function*/ args){			if(!context.getThis()){ throw new Error("You must use Context.setObject(instance)"); }			this.onAddEvent(this.getParent(), type, fn);			var resolved = fn;			if(dojo.isArray(args)){				resolved = function(e){					this[fn].apply(this, [e].concat(args));				}			}			return dojo.connect(this.getParent(), type, context.getThis(), resolved);

⌨️ 快捷键说明

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