




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可。这样便于维护,如果有很多网页,当通用内容需要修改时,只改一个文件就可以了,不需要每个文件单独修改。 最典型的应用比如页脚的版权信息等内容可以放在一个叫做footer.html文件里, 然后其他页面文件在页面内容的最后包含这个文件就可以了,具体例子下面有。 要html文件嵌套,最简单的办法是使用SSI(Server Side Include)技术,也就是在服务器端两个文件就被合并了。除了少数免费网页寄存服务外,几乎所有的网页寄存服务器都支持 SSI。这也是一个比较推荐的方法,它与ASP和ASP.NET网页使用的语法一模一样。如果网站管理员偏向使用PHP或JSP的话,语法会稍有不同。 对于不能使用SSI、ASP、ASP.NET、PHP和JSP等服务器端动态页面语言的情况,这里还将介绍两种客户端镶嵌的办法:JavaScript和iframe的方法。当这两种客户端的方法都有很大的弊病,一般不推荐使用。 下面对各种方法单独具体介绍。 1、SSI (Server Side Include) SSI是一种简单的动态网页制作技术,但是有些服务器要求网页文件扩展名为.shtml才能识别文件中SSI命令。所以如果你的SSI命令看起来不工作,先别放弃,试着把文件扩展名改为.shtml,也许会成功。如果知道自己的服务器是否支持SSI,请看另一篇文章。 使用SSI一个局限性是页面一定要放在网页服务器上才能看到效果,在本地是不好调试的。当然,如果非要在本地调试,就本地装一个Apache服务器好了。 比如你想在每个网页的底部加上同样的版权信息,像 2009 程序员实验室 版权所有可以把这行信息放到一个叫做footer.html的文件里,footer.html的内容为: © 程序员实验室 版权所有;这样同一路径下的其他页面文件要包含footer.html的SSI命令是: (常用) 或者 这两者的几乎是一样的,不同之处在于include virtual后面取的是一个URL形式的路径,甚至还可以执行一个CGI程序并包含其输出结果,如果你的服务器支持CGI的话。而include file后面取的是一个文件系统路径,并且不能执行CGI程序。两者都可以接受相对路径,所以对上面这个简单例子,两者的效果是一样的。如果你不知道URL路径与文件系统路径两者的区别的话,就用include virtual 更多关于SSI的介绍,请看这篇SSI的介绍文章。 2、PHP 如果你的服务器支持PHP的话,用PHP引用footer.html文件的写法如下: 这句命令所在的文件扩展名必须被为.php。 除了引用本服务器上的文件,PHP的include命令还可以用来引用其它网站上的html文件,比如: 当然你要得到其它网站的允许才能引用别人的文件。 3、ASP和ASP.NET 如果你使用的是老式的ASP,则语法是与上面SSI一样的,不需要任何修改,只要把命令所在文件的扩展名改为.asp即可。 对于ASP.NET,也是类似,不同之处在于,因为SSI命令是在ASP命令运行之前被首先编译,所以文件名中不能够使用ASP.NET的变量。如果一定要用的话,就用ASP.NET的命令来做文件嵌套吧。 比如:更多关于怎样在ASP.NET中实现动态文件嵌套,请参考微软的这篇文章。 4、JSP (Java Server Page)JSP文件需要在基于Java的服务器上运行,比如Apache Tomcat。JSP包含文件的语法是: 5、客户端包含 5。1 客户端包含的利弊 客户端包含有两种方式:JavaScript和iframe。让我们先看看两种方法各有什么利弊。 两种方法中Javascript生成的页面格式比较好,Javascript可以从一个URL取到页面片断然后镶嵌在另一个页面的任何位置 。其结果与服务器端包含的结果基本上一样,但弊端是客户端必须开启Javascript功能(目前大多数人是选择开启的,但也有少数出于安全方面的考虑不开启)。另一个弊端是搜索引擎是看不到由Javascript包含的页面的内容的,这对你的网站推广比较不利。 使用iframe比较简单,它可以强制一个HTML页面镶嵌在另一个页面中,类似于是用 object控件将Flash电影、录像、或者MP3播放器嵌入一个页面中。使用iframe,用户端不需要开启Javascript功能。但不利的方面是iframe有固定的高度和宽度,不能随着被嵌入页面的大小而改变。当被嵌入页面大于给定高宽度时,会显示滚动条(当然你也可以使用 scrolling = no 来强制滚动条不显示,但这样页面内容会显示不完整),影响页面美观。另外就是搜索引擎可能不收录iframe引用的页面,不利网站推广。 5。2 使用JavaScript的客户端包含 这个方法主要适用于Firefox浏览器(任何操作系统)、IE5以上(Windows)、苹果的Safari浏览器(MacOS X),可以使用一项叫做XMLHTTP 的API技术来通过Javascript程序读取一个动态读取一个XML文件。这种方法也可以用来读取一个HTML文件,并放到当前网页文件的指定位置。 专业网站设计者:不要用这个! 也许在某些情况下你不得不用JavaScript来实现网页嵌套,但是这只是一种转弯抹角的替代方法。当你的服务器可以支持前面讲的服务器端嵌套方法时,尤其是专业人士,应尽可能避免使用这种方法,因为你的客户可能会投诉你做的网页内容无法被Google搜索到,或不能在某些浏览器中正常显示。记住这种方法做的网页只能在Firefox,Safari,和IE5以上版本的浏览器中正常显示。大部分人都是用这几种浏览器的,但是不是所有人,而且有些用户因为安全因素考虑会关闭Javascript功能。 重要提示:如果你是在本地电脑上调试网页而不是在服务器上浏览,最新版本的浏览器会自动屏蔽Javascript动态生成的部分,并显示警告信息,你必须选择”允许显示动态内容”网页才能正常显示。当你把这些网页文件放到服务器上去的时候这个问题就会自动消失的,因为IE会辨别出主页和被包含的网页内容都来自同一个服务器。好了,说了够多了,下面是具体怎么做。把以下代码放在网页的里面: function clientSideInclude(id, url) var req = false; / Safari, Firefox, 及其他非微软浏览器if (window.XMLHttpRequest) try req = new XMLHttpRequest(); catch (e) req = false; else if (window.ActiveXObject) / For Internet Explorer on Windowstry req = new ActiveXObject(Msxml2.XMLHTTP); catch (e) try req = new ActiveXObject(Microsoft.XMLHTTP); catch (e) req = false;var element = document.getElementById(id);if (!element) alert(函数clientSideInclude无法找到id + id + 。 +你的网页中必须有一个含有这个id的div 或 span 标签。);return;if (req) / 同步请求,等待收到全部内容req.open(GET, url, false);req.send(null);element.innerHTML = req.responseText; else element.innerHTML =对不起,你的浏览器不支持 +XMLHTTPRequest 对象。这个网页的显示要求 +Internet Explorer 5 以上版本, +或 Firefox 或 Safari 浏览器,也可能会有其他可兼容的浏览器存在。;有了这段代码我们就可以在网页的任何位置插入另一个页面了。首先我们要生成一个作为”容器”的HTML控件,比如,并给这个”容器”控件一个ID,比如includefooter,然后把这个ID和要包含的页面的URL地址传递给前面写的这个js函数clientSideInclude就可以了。 一个需要注意的地方是函数clientSideInclude只有在页面被完全加载后才能工作,所以我们需要在标签的onload事件上来调用这个函数,这是最保险的调用时机,因为这个事件触发的时候浏览器肯定已经完全解析了页面中所有HTML了。 所以,具体代码是: 在需要插入另一页面的地方写: 在页面开始处标签里写: 当然,你也可以把函数clientSideInclude放在一个单独的文件里面,比如命名为clientSideInclude.js,然后在你的页面标签中插入下面这标签以便可以调用这个函数: 5。3 使用iframe的客户端包含 客户端页面嵌套还可以使用iframe的方法,弊端是必须事先想好被嵌套的页面在首页中要占多大的位置。如果被嵌套页面太大,超过事先定义的宽度或高度,则首页会出现滚动条。这也许正是你所需要的,但也许会完全破坏主页的设计。 iframe的使用很简单,下面的例子会在你的页面中嵌入另一个叫做include.html的页面: 你的浏览器不支持iframe页面嵌套,请点击这里访问页面内容。 这里主页中定义了要插入的页面将显示的高度为400的像素,宽度为450个像素。 我们为什么要在 iframe的里面插入一个普通的超级链接元素呢?这是因为老版本的浏览器和搜索引擎不支持iframe,虽然现在已经很少有人还会使用Netscape 4这样老的浏览器了,但是几乎所有人都会使用象Google这样的搜索引擎。在iframe里面加上超级链接可以帮助搜索引擎找到网页的内容。 另外我们可以定义iframe的一些属性来控制网页的显示效果 ,除了前面用到的最常用宽度(width)和高度(heigh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 驾照c1科目考试试题及答案
- 2025年广东省法检系统司法辅助人员招聘考试(综合知识)能力提高训练题及答案
- 2025年病历管理制度试题与答案
- 模型参数优化-第1篇-洞察与解读
- 出资协议条款及形式
- 2025年山西事业单位招聘考试综合类专业能力测试试卷(工程类)真题模拟解析
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷(北京)
- 2025江苏镇江丹阳市卫生健康委员会所属丹阳市人民医院招聘工作人员22人模拟试卷完整答案详解
- 2025江西吉安市吉州区樟山镇中心幼儿园招聘1人模拟试卷及答案详解(历年真题)
- 黑龙江省考试科目及答案
- 2026年日历表全年表(含农历、周数、节假日及调休-A4纸可直接打印)-
- 兴安盟兴泉矿业有限责任公司饮用天然矿泉水厂2024年度环境治理计划
- 《销售团队目标管理》课件
- 肌动蛋白结合蛋白筛选技术-深度研究
- 二手房交房确认书2025年
- 中华民族共同体概论讲稿专家版《中华民族共同体概论》大讲堂之第一讲:中华民族共同体基础理论
- 形势与政策补考2-国开(XJ)-参考资料
- GB/T 15597.2-2024塑料聚甲基丙烯酸甲酯(PMMA)模塑和挤出材料第2部分:试样制备和性能测定
- JT-T-1180.1-2018交通运输企业安全生产标准化建设基本规范第1部分:总体要求
- 数字货币概论 课件 第5章 稳定币的原理与实现
- 现代礼仪与沟通(大学生礼仪沟通课程)全套教学课件
评论
0/150
提交评论