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, '<$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 + -
显示快捷键?