javascript网站模板(web制作网站的模板)

admin 51 2022-12-12

本文目录一览:

Javascript 字符串模板的简单实现

这是源于两年前,当我在做人生中第一个真正意义上的网站时遇到的一个问题

该网站采用前后端分离的方式,由后端的

REST

接口返回

JSON

数据,再由前端渲染到页面上。

同许多初学

Javascript

的菜鸟一样,起初,我也是采用拼接字符串的形式,将

JSON

数据嵌入

HTML

中。开始时代码量较少,暂时还可以接受。但当页面结构复杂起来后,其弱点开始变得无法忍受起来:

书写不连贯。每写一个变量就要断一下,插入一个

+

"。十分容易出错。

无法重用。HTML

片段都是离散化的数据,难以对其中重复的部分进行提取。

无法很好地利用

template

标签。这是

HTML5

中新增的一个标签,标准极力推荐将

HTML

模板放入

template

标签中,使代码更简洁。

当时我的心情就是这样的:

这TMD是在逗我吗

为了解决这个问题,我暂时放下了手上的项目,花了半个小时实现一个极简易的字符串模板。

需求描述

实现一个

render(template,

context)

方法,将

template

中的占位符用

context

填充。要求:

不需要有控制流成分(如

循环、条件

等等),只要有变量替换功能即可

级联的变量也可以展开

被转义的的分隔符

{

}

不应该被渲染,分隔符与变量之间允许有空白字符

例子:

render('My

name

is

{name}',

{

name:

'hsfzxjy'

});

//

My

name

is

hsfzxjy

render('I

am

in

{profile.location}',

{

name:

'hsfzxjy',

profile:

{

location:

'Guangzhou'

}

});

//

I

am

in

Guangzhou

render('{

greeting

}.

\\{

This

block

will

not

be

rendered

}',

{

greeting:

'Hi'

});

//

Hi.

{

This

block

will

not

be

rendered

}

实现

先写下函数的框架:

function

render(template,

context)

{

}

显然,要做的第一件事便是

匹配模板中的占位符。

匹配占位符

匹配的事,肯定是交给正则表达式来完成。那么,这个正则表达式应该长什么样呢?

根据

需求

1、2

的描述,我们可以写出:

var

reg

=

/\{([^\{\}]+)\}/g;

至于需求

3,我第一个想到的概念是

前向匹配,可惜

Javascript

并不支持,只好用一个折衷的办法:

var

reg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

//

若是第一个或第三个分组值不为空,则不渲染

现在,代码应该是这样:

function

render(template,

context)

{

var

tokenReg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

return

template.replace(tokenReg,

function

(word,

slash1,

token,

slash2)

{

if

(slash1

||

slash2)

{

//

匹配到转义字符

return

word.replace('\\',

'');

//

如果

分隔符被转义,则不渲染

}

//

...

})

}

占位符替换

嗯,正则表达式确定了,接下来要做的便是替换工作。

根据

需求2,模板引擎不仅要能渲染一级变量,更要渲染多级变量。这该怎么做呢?

其实很简单:将

token

.

分隔开,逐级查找即可:

var

variables

=

token.replace(/\s/g,

'').split('.');

//

切割

token

var

currentObject

=

context;

var

i,

length,

variable;

//

逐级查找

context

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

currentObject

=

currentObject[variable];

return

currentObject;

不过,有可能

token

指定的变量并不存在,这时上面的代码便会报错。为了更好的体验,代码最好有一定的容错能力:

var

variables

=

token.replace(/\s/g,

'').split('.');

//

切割

token

var

currentObject

=

context;

var

i,

length,

variable;

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

{

currentObject

=

currentObject[variable];

if

(currentObject

===

undefined

||

currentObject

===

null)

return

'';

//

如果当前索引的对象不存在,则直接返回空字符串。

}

return

currentObject;

把所有的代码组合在一起,便得到了最终的版本:

function

render(template,

context)

{

var

tokenReg

=

/(\\)?\{([^\{\}\\]+)(\\)?\}/g;

return

template.replace(tokenReg,

function

(word,

slash1,

token,

slash2)

{

if

(slash1

||

slash2)

{

return

word.replace('\\',

'');

}

var

variables

=

token.replace(/\s/g,

'').split('.');

var

currentObject

=

context;

var

i,

length,

variable;

for

(i

=

0,

length

=

variables.length,

variable

=

variables[i];

i

length;

++i)

{

currentObject

=

currentObject[variable];

if

(currentObject

===

undefined

||

currentObject

===

null)

return

'';

}

return

currentObject;

})

}

除去空白行,一共

17

行。

将函数挂到

String

的原型链

甚至,我们可以通过修改原型链,实现一些很酷的效果:

String.prototype.render

=

function

(context)

{

return

render(this,

context);

};

之后,我们便可以这样调用啦:

"{greeting}!

My

name

is

{

author.name

}.".render({

greeting:

"Hi",

author:

{

name:

"hsfzxjy"

}

});

//

Hi!

My

name

is

hsfzxjy.

如何使用网站模板

具体的使用情况告诉你:

1、下载模板之后,应该在文件中有一个说明,打开记事本样式的文件,首先看看里面的如何进入后台模板。一般情况是:首先下载一个asw文件(相当于iss),然后在地址栏中输入:回车。输入用户名或者密码(一般用户名:admin密码是:admin或者admin888)

2、进入后台之后,一般有“文章”“下载”之类的模块,在里面的相应位置添加内容,然后保存。

3、最后别忘记,重新生成首页功能。一般是在“管理”模块中。

说明:

如果不能生成,在每个模块中,有一个生成html功能,打开之后,先生成地图功能,然后点击生成全部模块。

上述说的应该算是很明白了,如果还是不明白,请给我留言,具体操作给你演示。

Visual Studio 2012,新建项目时,里面没有javascript项目模板,怎么办?

Visual Studio主要用来开发asp.net网站,不清楚你说说的javascript模板具体指什么。vs里面aps.net网站是建好模板的还有mvc也是有模板的

是不是用到javascript的网页都不是静态页面,而是动态页面?

是。有javascript的网页仍是静态网页,不是动态网页。不是网页上有动态的元素才是动态网页。假如一个网页有javascript花花绿绿的,它仍是静态网页,所谓的静态、动态是指能否与数据库产生交互。只有PHP、asp、JSP这些网页,才是动态网页。静态网页与动态网页的区别,动态网页以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?”,静态网页:以.htm、.html、.shtml、.xml等形式为后缀。

在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如HTML, ASP、PHP、JSP、ASP.net、CGI等。静态网页运行于客户端的程序、网页、插件、组件,属于静态网页,下面列出的四种情况都不一定是动态页面,带有音频和视频,带有flash动画,带有css动画,带有javascript动画。千锋教育截止目前已在北京、深圳、上海、广州、郑州、成都、大连等20余个核心城市建立直营校区,服务近20万学员、近千所高校和数万家企业。

html 初学者 网站模板

!DOCTYPE html

html

head

meta charset="UTF-8"

title/title

style

body{

height:500px;

background: linear-gradient(#A6CADE,#F8C6F8) no-repeat;

}

ul,li,div {

padding:0;margin:0;

}

.container{

width: 500px;

margin:0 auto;

}

#tab-con div{

display: none;

width:500px;

height:282px;

}

#tab-con div img{

width: 100%;

height:100%;

}

#tab-con div.active{

display: block;

}

#tab-list ul li{

float:left;

list-style: none;

}

#tab-list ul li a{

display: block;

width:70px;

text-align: center;

text-decoration: none;

color:#000;

background: #D6D6D1;

}

#tab-list ul li.active a{

color:#fff;

background:#f96302;

}

/style

/head

body

div class="container"

div id="tab-con"

div class="active"img src="img/test1.jpg"/div

divimg src="img/test2.jpg"/div

divimg src="img/test3.jpg"/div

div图片4/div

div图片5/div

div图片6/div

div图片7/div

/div

div id="tab-list"

ul

lia href="javascript:;"首页/a/li

lia href="javascript:;"美食/a/li

lia href="javascript:;"交通/a/li

lia href="javascript:;"图片4/a/li

lia href="javascript:;"图片5/a/li

lia href="javascript:;"图片6/a/li

lia href="javascript:;"图片7/a/li

/ul

/div

/div

script

var tablist = document.getElementById('tab-list').getElementsByTagName('li');

var tabcon = document.getElementById('tab-con').getElementsByTagName('div');

for(var i = 0; itablist.length; i++){

tablist[i].onclick = function(){

starttab(this);

};

};

function starttab(obj){

for(var i = 0; itablist.length; i++){

if(tablist[i] == obj){

tablist[i].className = "active";

tabcon[i].className = "active";

}else{

tablist[i].className = "";

tabcon[i].className = "";

};

};

};

/script

/body

/html

急求一份html、css、JavaScript的“个人主页”网页设计模板代码。

!--这个模版来自[最好模版-],需要更多模版请访问;

html

head

meta http-equiv="Content-Type" content="text/html; charset=gb2312"

title┆假想敌┆- 颓废模板/title

script language="JavaScript" type="text/JavaScript"

!--

function MM_reloadPage(init) {  //reloads the window if Nav4 resized

  if (init==true) with (navigator) {if ((appName=="Netscape")(parseInt(appVersion)==4)) {

    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//--

/script

style type="text/css"

!--

BODY {

SCROLLBAR-FACE-COLOR: #3F2413;

SCROLLBAR-HIGHLIGHT-COLOR: 

#FFFFFF;

SCROLLBAR-SHADOW-COLOR: #ffffff;

SCROLLBAR-3DLIGHT-COLOR: #3F2413;

SCROLLBAR-ARROW-COLOR: 

#FFFFFF;

SCROLLBAR-TRACK-COLOR: #3F2413;

SCROLLBAR-DARKSHADOW-COLOR: #3F2413;

background-color: #FFFFFF;

background-image: url(bg.jpg);

}

--

/style

/head

body

div id="Layer1" style="position:absolute; width:1000px; height:628px; z-index:1; left: 0px; top: 0px;"

  div align="center"

    pnbsp;/p

    pnbsp;/p

    pnbsp;/p

    pnbsp;/p

    pimg src="1.jpg" width="650" height="400" border="0" usemap="#Map2"

      map name="Map2"

        area shape="rect" coords="321,379,490,399" href="" target="_blank" alt="┆假想敌┆"

        area shape="rect" coords="196,15,242,43" href="home.htm" target="main1" alt="home"

      /map

      map name="Map"

        area shape="rect" coords="18,196,60,220" href="home.htm" target="main1" alt="home"

      /map

    /p

  /div

/div

 

div id="Layer2" style="position:absolute; width:412px; height:295px; z-index:2; left: 382px; top: 203px;"

iframe src="home.htm" name="main1" width="412" height="295"

 frameborder="0" scrolling="yes" style="border:0px;"allowtransparency="true"/iframe/div

/body

/html

span style="display:none;"这个模版来自,更多模版请访问a href="";/anbsp;a href="";/anbsp;a href="";/a/span

javascript网站模板的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于web制作网站的模板、javascript网站模板的信息别忘了在易优之家进行查找喔。

上一篇:微信素材网(微信素材网页)
下一篇:虚拟网络(虚拟网络英语)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~