window.onload = function() {
var A = {
root: document.getElementById('container'),
formatString: function(str, data) {
return str.replace(/{#(\w+)#}/g,
function(match, key) {
return typeof data[key] === undefined ? '' : data[key];
});
},
listPart: function(data) {
var s = document.createElement('div');
var template = [
'<h1> this is a template create by {#name#} </h1>',
'<p> 今天的天气是{#weather#}</p>'
].join('');
s.innerHTML = this.formatString(template, data);
return s;
},
init: function(data) {
this.root.appendChild(this.listPart(data));
}
};
A.init({
name: 'xiaoT',
weather: '晴天'
});
};
A.formatString = function(str, data) {
return str.replace(/\{#(\w)#\}/g,
function(match, key) {
return typeof data[key] === 'undefined' ? '' : data[key];
});
}
A.view = function(name) {
var v = {
code: '<pre><code>{#code#}</code></pre>',
img: '<img src="{#src#}" alt="{#alt#}" title="{#title#}" />',
part: '<div id="{#id#}" class="{#class#}">{#part#}</div>',
theme: [
'<div>',
'<h1>{#title#}</h1>',
'{#content#}',
'</div>'
].join('')
}
if (Object.prototype.toString.call(name) === "[object Array]") {
var tpl = '';
for (var i = 0, len = name.length; i < len; i++) {
tpl += arguments.callee(name[i]);
}
return tpl;
} else {
return v[name] ? v[name] : ('<' + name + '>{#' + name + '#}</' + name + '>');
}
}