最近要对我们公司的网站进行重构,所有的页面都是引用一个top.inc的文件,每个文件都共用同一个<head></head>,<title></title>内容自然也一样,现在老板叫我把每个页面改成不同的标题,总共有十一个页面啊,如果以后又要改成其它的,那不是很麻烦。想到几种方案:1.改页面结构,每个页面加上自己的<head>,这样实在是麻烦 2.改生成后代码。看起来简单一些,不过无论哪种方法都要将十一个页面改一次,想到减少以后的麻烦,干脆现在一次性把它做好。于是采用了第二处方案。
思想主要是利用JS改变页面的title,为了方便以后更改,我将所有页面的title放进一个Page对象,然后将这些对象放进一个数组,由于每个页面都有一个编号,但编号没有规律,因此直接用数组,有点麻烦,于是想到利用JSON。最终代码如下
//kaig_page.js function Page(id,name,title){ this.id = id ; this.name = name ; this.title = title ; } var pages = { "idczy_":new Page(000,"通用页面","标题"), "idczy_371":new Page(371,"首页","标题371"), "idczy_372":new Page(372,"特惠套餐","标题372"), "idczy_370":new Page(370,"域名注册","标题370"), "idczy_368":new Page(368,"虚拟主机","标题368"), "idczy_366":new Page(366,"数据库","标题366"), "idczy_364":new Page(364,"企业邮箱","标题364"), "idczy_362":new Page(362,"主机租用","标题362"), "idczy_383":new Page(383,"主机托管","标题383"), "idczy_381":new Page(381,"VPS","标题381"), "idczy_379":new Page(379,"增值产品","标题379"), "idczy_377":new Page(377,"代理专区","标题377") } ; var objPage = eval(pages); window.document.title = objPage.idczy_372.title ;
调用时:只需要将window.document.title = objPage.idczy_371.title ;里的371改变即可,我们的网站是ASP的,所以调用时用以下语句:
<script type="text/javascript" src="js/kaig_page.js" charset="gbk"></script> <script type="text/javascript"> window.document.title = objPage.idczy_<%=request.QueryString("pid")%>.title ; </script>