html.js

来自「ajax框架原吗,dojo目前很流行的,希望大家多多学习啊」· JavaScript 代码 · 共 137 行

JS
137
字号
if(!dojo._hasResource["dojox.dtl.tag.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.dtl.tag.html"] = true;dojo.provide("dojox.dtl.tag.html");dojo.require("dojox.dtl._base");dojox.dtl.tag.html.HtmlNode = function(name){	this.contents = new dojox.dtl.Filter(name);	this._div = document.createElement("div");	this._lasts = [];}dojo.extend(dojox.dtl.tag.html.HtmlNode, {	render: function(context, buffer){		var text = this.contents.resolve(context);		text = text.replace(/<(\/?script)/ig, '&lt;$1').replace(/\bon[a-z]+\s*=/ig, '');		if(this._rendered && this._last != text){			buffer = this.unrender(context, buffer);		}		this._last = text;		// This can get reset in the above tag		if(!this._rendered){			this._rendered = true;			var div = this._div;			div.innerHTML = text;			var children = div.childNodes;			while(children.length){				var removed = div.removeChild(children[0]);				this._lasts.push(removed);				buffer = buffer.concat(removed);			}		}		return buffer;	},	unrender: function(context, buffer){		if(this._rendered){			this._rendered = false;			this._last = "";			for(var i = 0, node; node = this._lasts[i++];){				buffer = buffer.remove(node);				dojo._destroyElement(node);			}			this._lasts = [];		}		return buffer;	},	clone: function(buffer){		return new dojox.dtl.tag.html.HtmlNode(this.contents.contents);	},	toString: function(){ return "dojox.dtl.tag.html.HtmlNode"; }});dojox.dtl.tag.html.StyleNode = function(styles){	this.contents = {};	this._styles = styles;	for(var key in styles){		this.contents[key] = new dojox.dtl.Template(styles[key]);	}}dojo.extend(dojox.dtl.tag.html.StyleNode, {	render: function(context, buffer){		for(var key in this.contents){			dojo.style(buffer.getParent(), key, this.contents[key].render(context));		}		return buffer;	},	unrender: function(context, buffer){		return buffer;	},	clone: function(buffer){		return new dojox.dtl.tag.html.HtmlNode(this._styles);	},	toString: function(){ return "dojox.dtl.tag.html.StyleNode"; }});dojox.dtl.tag.html.AttachNode = function(key){	this.contents = key;}dojo.extend(dojox.dtl.tag.html.AttachNode, {	render: function(context, buffer){		if(!this._rendered){			this._rendered = true;			context.getThis()[this.contents] = buffer.getParent();		}		return buffer;	},	unrender: function(context, buffer){		if(this._rendered){			this._rendered = false;			if(context.getThis()[this.contents] === buffer.getParent()){				delete context.getThis()[this.contents];			}		}		return buffer;	},	clone: function(buffer){		return new dojox.dtl.tag.html.HtmlNode(this._styles);	},	toString: function(){ return "dojox.dtl.tag.html.AttachNode"; }});dojox.dtl.tag.html.html = function(parser, text){	var parts = text.split(" ", 2);	return new dojox.dtl.tag.html.HtmlNode(parts[1]);}dojox.dtl.tag.html.tstyle = function(parser, text){	var styles = {};	text = text.replace(dojox.dtl.tag.html.tstyle._re, "");	var rules = text.split(dojox.dtl.tag.html.tstyle._re1);	for(var i = 0, rule; rule = rules[i]; i++){		var parts = rule.split(dojox.dtl.tag.html.tstyle._re2);		var key = parts[0];		var value = parts[1];		if(value.indexOf("{{") == 0){			styles[key] = value;		}	}	return new dojox.dtl.tag.html.StyleNode(styles);}dojo.mixin(dojox.dtl.tag.html.tstyle, {	_re: /^tstyle\s+/,	_re1: /\s*;\s*/g,	_re2: /\s*:\s*/g});dojox.dtl.tag.html.attach = function(parser, text){	var parts = text.split(dojox.dtl.tag.html.attach._re);	return new dojox.dtl.tag.html.AttachNode(parts[1]);}dojo.mixin(dojox.dtl.tag.html.attach, {	_re: /\s+/g})}

⌨️ 快捷键说明

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