» 欢迎您,
客人
:
登录
|
注册
|
找回密码
|
微博
|
社区
→
脚本中心
→ 浏览:帖子主题
* 帖子主题:
用 JS 实现 ASP 模板语法
pojin
(ID: 1)
头衔:论坛坛主
等级:
究级天王[荣誉]
积分:2826
发帖:
230
篇
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第
1
楼 ]
80
回复
来一个模板示例:
<script type="text/javascript"> // 页面模板内容 function pageCode() {/* <!doctype html><html lang="zh"><head> <title><%= data.title %></title> </head><body text="#00ff00" bgcolor="black"> 你好,<%= data.nick %>。 <% for(var i = 0; i < 10; i++) { %> <div>For 循环测试:<%= i %></div> <% } %> </body></html> */} // 解析 ASP 模板语法 function aspParser(code, args) { if(!args) args = new Object; var reg = /<%[\s\S]+?%>/g; // 纯html代码,纯asp代码,组合代码 var arr1 = code.split(reg), arr2 = code.match(reg), arr3 = new Array, arr4 = new Array; var loadArg = function(k) { return args[k]; }; for(var x in args) arr3.push("var " + x + "=loadArg('" + x + "');"); var blockWrite = function(i) { arr4.push(arr1[i]); }; for(var i = 0; i < arr1.length; i++) { arr3.push("blockWrite(" + i + ");"); var js = (arr2[i] || "").slice(2, -2).replace(/(^\s+|\s+$)/g, ""); if(!js) continue; if(js.charAt(0) == "=") js = "arr4.push(" + js.slice(1) + ");"; arr3.push(js); } try { eval(arr3.join("\r\n")); } catch(err) { return err.message; } document.open(); document.write(arr4.join("")); document.close(); } aspParser(pageCode.toString().slice(24, -4), { data: { title: "测试 ASP 模板", nick: "Guest" } }); </script>
[您可以先修改代码再运行]
用来做node 的 asp 模板也很不错。
2024-02-01 21:24:21
IP:已设置保密
pojin
(ID: 1)
头衔:论坛坛主
等级:
究级天王[荣誉]
积分:2826
发帖:
230
篇
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第
2
楼 ]
81
回复
灵感来源于 ASP 里面一个奇葩的方法:Response.BlockWrite
2024-02-01 21:25:14
IP:已设置保密
分页:
1
, 共 1 页
快速回复主题
账号/密码
用户:
没有注册?
密码:
评论内容