HTML的复用是一个很少被提及的词汇,今天就这个问题小结如下:
在老版本的浏览器中HTML文档是不支持嵌套的,而我们要能够复用HTML代码通常的做法主要有基于服务器端和客户端实现的2大类方法:
1.服务器端实现
a.使用SSI,既通常的shtml文件。
b.asp、php等的include类语句,asp.net的模板页和用户控件。
2.在客户端实现
a.使用javascript客户端脚本
a1.可以在html文档的onload事件中触发一个js方法,在该方法中找到一个页面元素作为容器,在该容器中输出一段html代码(可以定义一个字符串存储要输出的html代码片段,比如:var str="<p>hello world!</p>";)。
a2.在页面中使用<script type="text/javascript" src="Default3.aspx"></script>等脚本注册块(该处的Default3.aspx也可以是js脚本文件或其他实现js格式的服务器端输出),在实现的脚本文件中用document.write方法把要复用的html代码打印出来。
a3.使用AJAX实现。该方法有个缺陷,就是客户端的有些浏览器默认是不支持ajax的跨站调用的。
b.使用iframe
两者的选择:
更多的情况下首选服务器端的实现,除非是在一些实现静态化的页面或者一些特殊的场合再使用客户端的实现。
更多参考:
http://ask-leo.com/how_do_i_include_one_html_file_inside_another.html
http://www.boutell.com/newfaq/creating/include.html
http://blog.csdn.net/omohe/archive/2007/10/28/1850766.aspx