如何实现HTML模板的标签

html-css022

如何实现HTML模板的标签,第1张

天幻可以用replace函数或者正则表达式都可以例子: CreateFile.asp //===================================================================== 下面举一个简单的例子介绍一下这种思路的简单实现方法。

建立数据库db.mdb【使用Access】, 创建标签表Tag,字段如下: 自动编号 标签名称(文本型) 标签说明(文本型) 标签内容(备注型) ID tagName tagDesc tagCon 1 $Top_Nav$ 顶部导航 具体内容 创建模版表Template,字段如下: ID(自动编号) tName(文本,模版名称) tPath(文本,模版文件路径) Path(文本,保存路径) 1 公司介绍 /Template/Company.html /Company.html 【本例只介绍简单的文件模版使用,而非多个样式的模版】

后台标签、模版的添加修改删除就不在这里说明了,注意:本例中标签使用$符号开头和结尾。 Company.html部分代码:……$Top_Nav$……$Sys_Top_News$……先使用Fso或者其他方式以文本方式读取这个文件的内容,然后使用正则表达式,找到标签,并替换相应的标签内容。

FSO读取详见“FSO文件、文件夹操作类”。 程序代码 '使用正则的处理标签的函数chxwei.com

Function ReplaceTags(ByVal sCon)

Dim objRegEx,Match,Matches

'建立正则表达式

Set objRegEx=New RegExp'查找内容objRegEx.Pattern="\$.*\$"

'忽略大小写

objRegEx.IgnoreCase=True'全局查找objRegEx.Global=True

Set Matches=objRegEx.Execute(sCon)

'循环替换已发现的匹配

For Each Match in Matches

sCon=Replace(sCon,Match.Value,ParseTag(Match.Value))NextSet Matches=Nothing

Set objRegEx=Nothing

ReplaceTags=sCon

End Function

'替换相应的标签内容chxwei.com

Function ParseTag(ByVal StrTag)

If Len(StrTag) = 0 Then Exit Function

ClsName=StrTagtmpTag=""If InStr(ClsName,"$Sys_")>0 Then '系统标签

Select Case ClsName

Case "$Sys_Top_News$" '最新文章信息

'中间读取数据库省略,循环读取数据赋值给tmpTagCase ElsetmpTag=""End SelectElse '自定义标签tmpTag=""Set RsT=Conn.Execute("Select tCon From TagList Where tName='"&className&"'")

If RsT.Eof Then

tmpTag=classNameElsetmpTag=RsT(0)End IfRsT.CloseSet RsT=NothingEnd IfParseTag=tmpTag

最后使用Fso把得到的内容按照模版保存的路径生成静态页面。

顾名思义,这是一个模板。比如需要ajax刷新一个列表,以前的做法是后端生成html返回,或者前端用DOM构建后加入,但现在有了template标签,html的架构就不需要程序管了,只需要在特定的位置加入ajax请求到的数据即可,比如img的src或者其他text之类的,然后clone这个DOM,加入列表。

其实许多人以前也应该做过类似的事情,把一段html隐藏起来,然后clone它并修改里面的属性或者内容,得到一个DOM,加入列表并显示,用来刷新ajax列表。