代码拉取完成,页面将自动刷新
同步操作将从 tom/javascript template 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*****
模板字符串,语法标签采用<js></js>
完全遵循javascript原生语法,内置输出函数为echo(string);函数
常用调用例子,可以用 如果下方法.
<textarea id="template_code" style="display:none'>
<js> for(var i=0;i<names.length;++i){</js>
<label><h1><js> echo(names[i]);</js></h1></label>
<js> }</js>
</textarea>
js_template(document.getElementById('template_code').value,{names:['tom','jerry','david']});
异常处理:
eval解析异常会往window.AJ变量里面记录debug信息方便调试。
作者:浮山狼
邮箱:fushanlang@gmail.com
若使用中遇到问题,欢迎交流、切磋!
*/
function js_template(template, values) {
//模板输出结果
var result = "";
//公共的输出函数
var echo = function (output) {
result += output;
}
//记录解析错误
var errors=window.AJ;
window.AJ=errors=!errors?[]:errors;
//唯一分隔标志字符串
var split = '_{' + Math.random() + '}_';
//消除换行符
var estr = template.replace(/\n|\r|\t/g, "");
var js = [];
/****
* 匹配标签<js> ...</js>--并且替换为特定的分隔串,
* 并将匹配的js代码放入js数组中备用
* */
estr = estr.replace(/<js>(.*?)<\/js>/g, function ($0, $1) {
js.push($1);
return split;
});
/*根据特定的分隔串分隔得到普通txt文本串的数组*/
var txt = estr.split(split);
estr = "";
/****
* 0101010---0为txt[]元素,1为js[]元素
* 重新串起来连接为可执行eval的estr
* **/
for (var i = 0; i < js.length; ++i) {
estr += 'echo(txt[' + i + ']);';
estr += js[i];
}
estr += 'echo(txt[' + js.length + ']);';
try {
if (values) {
for (var i in values) {
eval('var ' + i + ' =values[i];');
}
}
eval(estr);
}
catch (error) {
errors.push([error,estr,template]);
} finally {
return result;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。