网页编程的学习笔记

网页编程的学习笔记

一、JavaScript

二、ASP

一、JavaScript

0-1基本Html语言

n(1)超链接指定目标网页的Name

连结

一般情况下超链接打开的目标网页是在本网页之内打开的,但是利用上面的代码可以在新窗口中打开目标网页,再重新打开时仍然在已经开启的目标网页中显示.

n(2)框架中指定子网页的Name

上面的网页框架中,点击下面的产生随机数时,上面的数字会随着刷新

框架代码

Frames

上部的网页代码

下部网页代码

产生新随机数

nJS提交表单数据语法

Document.formName.submit();

n(3)在网页总嵌套其它网页(Ifame)

去掉frameBorder=0,则IFRAME带上边框

scrolling="no"则没有了调整位置的滚动条

把Iframe中添到层中可以随着层改变位置

点击按钮更改Iframe的网页内容

pdfshow.document.location='url';

">

scrolling="yes"align="center"

frameBorder=1width="100%"height="100%"

>

第二个例子程序



src=""frameBorder=1width=300scrolling=yes

height=200>

注意修改目标地址的时候,不能随便写,如写程sohu和csdn则会报错,”权限拒绝”,要在自己目录下的(好象同一个网站下的也应该行吧)

n(4)YesNo提示框

functionpushbutton()

{

v=confirm("完全删除后将无法恢复,请您确认是否继续?");

if(v)

alert('yesclicked');

else

alert('noclicked');

}

n设置文本输入框的读写属性

window.document.getElementById('nodeName').readOnly=false;

window.document.getElementById('nodeTops').readOnly=false;

n选取文本框中的文本函数

window.document.getElementById('nodeName').select();

n(5)在超链接中执行函数

:本例功能是不执行任何操作

:显示提示框

n(6)下拉选择框的几个属性

下拉选择框的名字是D1

<1>获得D1中有几个元素:alert(D1.options.length);

<2>追加一个新元素,cctv

functionAddNew()

{

varMycat=document.createElement("OPTION");

Mycat.text=Mycat.value="cctv";

document.forms[0].D1.add(Mycat);

document.forms[0].D1.selectedIndex=document.forms[0].D1.length-1;

document.refresh;

}

n(7)网页打开时加载另外一个内容

n(8)避免重复open窗体

if(this.name!='fullscreen'){

setTimeout("window.opener=null;window.close();",500);

window.open(location.href,'fullscreen','fullscreen,scrollbars');

}

n(9)加入CSS

n(10)加入js文件

000各种事件

n(1)onLoad

<bodyonLoad="scroll()">

在网页刷新,启动时调用指定的函数.

n(2)onunload

<bodyonload="scroll()"onunload="alert('关闭')">

n(3)onClick

οnclick=pushbutton("你好")//单击调用函数Click

n(4)onblur也就是LostFocus

οnblur=Message(this.value)//丢失焦点LostFocus

n(5)OnMouseOver:当鼠标移进区域时执行,MouseIn

οnmοuseοver="window.status='Justanotherstupidlink...';returntrue"//鼠标移过MouseMove

JavaScript代码可以直接写在Html的<>内,如:

<Aonmouseover="vara;a=30;alert(''+a+'');document.writeln('abc');"href="00Readme.htm">连结A>

这将显示一个超链接,连接的目标是00Readme.htm,当鼠标移动到该超链接上时,则执行JavaScript代码.

n(6)onMouseOut鼠标移出

<inputtype="button"value="按钮"name="B3"onMouseOut="alert('c');">

n(7)onMouseMove鼠标在区域内移动

<bodyonmousemove="move();">

n(8)onSelect:反白选择其上的文字或元素时

<bodyonSelect="window.status=Math.random();">

反白选择网页上一个元素或文字时执行本事件,每多反白一个则执行一遍.

对象得到焦点:

dateForm.select()

n(9)onChange

text框内容发生变化时激发

000_1常用的元素状态设置

说明,本节使用的代码都是设置按钮或图片等元素的外观或动作的

<inputstyle="CURSOR:hand"type="button"value="按钮"name="B3"ID="Button1">

可以把移动到按钮上的鼠标形状为手指形状

多个状态设置时用;分开

n(1)设置鼠标的外观

style="CURSOR:hand"

n(2)设置为不可见

style="display:none;CURSOR:hand"

可见是style="display:inline;CURSOR:hand"

关于js检测浏览器关闭事件(-)

functionpromptOnClose(e){

//e=e?e:windowevent;

varpromptString='你要关闭浏览器吗?';

//event.returnValue=promptString;

returnpromptString;

}

if(window!=top){

top.location.href="http://www.baidu.com";

}else{

if(window.Event){

window.οnbefοreunlοad=function(event){

returnpromptOnClose(event);

}

}else{

window.οnbefοreunlοad=function(){

returnpromptOnClose(event);

}

}

}

关于浏览器检测浏览器关闭事件(二)

001常用JavaScript代码

n三目运算(?:)

n(0)把函数写在其它文件中(类似C中的include,或inline)

="module/images.js">

把函数卸载module目录下的images.js(也可以是其它扩展名)文件中,便可以在本文件中使用,相当于把那段代码写在这个地方一样.

如images.js的内容可以这么写

functionX()

{

alert("a");

}

把这些函数写上就可以了,

n(1)在状态条上书写字符串

window.status="显示在状态条上";

n(2)Alert

alert("cctv";或alert('cctv');

n(3)输出文字

document.writeln("abc");

document.writeln()在网页初始加载时,输出的文字会产生在源代码中,但是加载网页后再执行某些函数内执行的document.writeln();则会将整个网页的代码全部替换为输出的文字,所以document.writeln最好只在加载时执行一遍,它也可以创建元素,在网页中使用过程中最好不要执行document.writeln,

<html>

<head>

head>

<bodybgcolor="pink">

<script>document.writeln("abc");script>

<inputonclick="document.writeln('abc');"type="button"value="按钮"name="B3"style="CURSOR:hand"ID="Button1">

body>

html>

第一次会显示abc并且有按钮,当点击按钮时,源代码就只剩下了abc其它文字全没有了

n(4)数学运算

vari;

i=Math.random();

Math的都是数学方面的运算,包括sin,cos等等

n(5)打开一个网页

Ø在新窗口中打开

<html>

<head>

<script>

functionMyOpen(url)

{

msg=open(url,"xzy");

}

script>

head>

<body>

<inputtype="button"name="Button2"value="按钮"onclick="MyOpen('00Readme.htm')"ID="Button1">

body>

html>

Ø在当前网页打开

<script>

location="http://www.sohu.com";

script>

只要网页一执行这个代码,就会把网页引导到指定的目标上,若像这样写在body之间,只要一打开网页就去了sohu上,不会显示本网页的内容

也可以把location=””放在onclick中或其它事件中,则可以导引网页到sohu上.

n(5_01)可以互相打开的地址函数

网页a1.htm和a2.htm,在a2上编制了一个通用的过程,只要按照一定的规则打开a2,则a2可以再返回到a1上

a1.htma2.htm

n(6)使用数组

Ø基本操作

<script>

vara=newArray("cctv","sxtv","tytv");

vara=newArray(3);

vara=newArray();

a[0]="cctv";

a[1]="sxtv";

a[2]="tytv";

a[3]="xzy";

for(i=0;i

document.writeln(a[i]);

script>

Øjoin:利用数组的join方法,连接所有的数组内容

数组的join(stringval)可以将数组元素连接起来,并且用中间插入val,

当在网页上交互显示下拉框内容的时候可以将内容加载到数组内,再利用innerHTML将内容显示在出来

显示:

cctv
sxtv
tytv
xzy

Ø数组排序

vararr=newArray(1000)

arr[0]="xbc1";

arr[1]="bcx2";

arr[2]="cctv3";

arr[5]="xctv4";

arr.sort();

for(i=0;i

{

if(arr[i]!=null)

document.writeln(arr[i]);

}

n(7)网页的后退和前进

history.back()

history.forward()

history.go(1)go(-1)go(-2)

n(8)类型转换

Ø字符串转为整数

vara1;

a1=parseInt(”88”);

n(9)设置焦点

document.first.text1.focus();

n(10)设置背景色

document.bgColor=255;

n(11)日期函数

varD=newDate();返回的是当前日期

varD=newDate(1995,10,11);

D.setHours(15);

给日期类型赋值

n(12)使用网页地址的一些信息

<Html>

<head>

<script>

document.linkColor="#FFFF00";//未使用的连接的颜色

document.alinkColor=65280;//点击连接时连接的颜色

document.vlinkColor=0;//一经点击过的连接的颜色

document.fgColor="#FF00FF";//默认文字的颜色

document.bgColor="#505050";//网页的背景色

script>

head>

<body>

我是邢志云

<ahref="http://www.sohu.com"target=_blank>cctva>

<ahref="http://ddd"target=_blank>cctva>

body>

html>

n(17)控制文字的显示:

"display:inline;color:#ff0000">aaa

display:none时不显示文字

完整的代码

</span>NewPage1<span style="color:rgb(0,0,192);">

name=text1style="display:inline;color=#FF0000;font=32">真有趣!


"Make();"type="button"value="按钮"name="B3"style="CURSOR:hand"ID="Button1">

n(18)只能输入数字的文本框

nswitch

switch(j)
{
case0:
wtab.rows[iRow].cells(j).innerHTML=xuhao+"";wtab.rows[iRow].cells(j).align="right";
break;
case1:
wtab.rows[iRow].cells(j).innerHTML=""+mc;wtab.rows[iRow].cells(j).align="left";
break;
case2:
wtab.rows[iRow].cells(j).innerHTML=""+shifou;wtab.rows[iRow].cells(j).align="left";
break;
case3:
wtab.rows[iRow].cells(j).innerHTML=czuo;wtab.rows[iRow].cells(j).align="center";
wtab.rows[iRow].cells(j).attachEvent('onmouseover',SetColor_1);
wtab.rows[iRow].cells(j).attachEvent('onmouseout',SetColor_2);
break;
}

n19、客户端数据校验的通用解决之道----妙用自定义属性


我们知道,HTML的文本框元素可以使用type,name,value,size,maxlength,style,id等固有属性,但你可曾想到,我们还可以自定义一些属性呢。笔者是在一个极其偶然的机会里发现这个小秘密的,并且没有想到的是,这个小秘密竟然可以帮我们很大的忙----实现客户端数据的通用校验,自此客户端校验工作容易做了,不用再为每个FORM表单劳神又费力地写Javascript校验代码了。

请看下面的测试网页univerify_test.html

name="Button"value="检测全部输入并提交">

基于自定义属性的客户端统一检测方法



基于自定义属性的客户端统一检测方法

οnsubmit="returnverifyAll(form1);">

cellPadding="1"cellSpacing="0"width="580">

姓名:

size="10"maxlength="10"maxsize="10"nullable="no"

datatype="text"onBlur="verifyInput(this);">

*

年龄:

size="3"maxlength="3"maxsize="3"nullable="no"

datatype="number"onBlur="verifyInput(this);">

*

住址:

size="40"maxlength="100"maxsize="100"nullable="yes"

datatype="text"onBlur="verifyInput(this);">



上述网页的表单form1中有三个文本框,姓名(NAME)、年龄(AGE)和住址(ADDRESS)。笔者为这三个文本框中自行定义了四个新属性,分别是:

1chname:表示该数据的中文名称,用于校验出错时显示用。

2maxsize:表示允许输入的最大长度,这个长度是以节字计算的。

3nullable:表示输入值是否允许为空。为yes时允许为空。

4datatype:表示输入值的数据类型。这个数据类型用户可以根据需要自行定义,需要注意的是,对于每一个新的数据类型,均需要在下面将要讲述的Javascript文件univerify.js中添加相应的校验函数,从而实现统一校验。

三个文本框都对失去焦点事件进行捕获:onBlur="verifyInput(this);"。在失去焦点时用verifyInput校验一下此文本框的值是否合法。

form1表单对onsubmit事件进行了捕获:οnsubmit="returnverifyAll(this);"。在用户提交表单时,用verifyAll对此表单的元素的值统一进行检测,验证其合法性,保证存入数据库时不出现异常。

上述网页引用的Javascript函数库univerify.js内容如下:

/******************************************************/

/*文件名:univerify.js*/

/*功能:基于自定义属性的统一检测用Javascript函数库*/

/*作者:纵横软件制作中心雨亦奇([email protected])*/

/******************************************************/

/*取得字符串的字节长度*/

functionstrlen(str)

{vari;

varlen;

len=0;

for(i=0;i

{

if(str.charCodeAt(i)>255)len+=2;elselen++;

}

returnlen;

}

/*检测字符串是否为空*/

functionisnull(str)

{

vari;

for(i=0;i

{

if(str.charAt(i)!='')returnfalse;

}

returntrue;

}

/*检测字符串是否全为数字*/

functionisnumber(str)

{

varnumber_chars="1234567890";

vari;

for(i=0;i

{

if(number_chars.indexOf(str.charAt(i))==-1)returnfalse;

}

returntrue;

}

/*检测指定文本框输入是否合法*/

functionverifyInput(input)

{

varimage;

vari;

varerror=false;

/*长度校验*/

if(strlen(input.value)>parseInt(input.maxsize))

{

alert(input.chname+"超出最大长度"+input.maxsize);

error=true;

}

else

/*非空校验*/

if(input.nullable=="no"&&isnull(input.value))

{

alert(input.chname+"不能为空");

error=true;

}

else

{

/*数据类型校验*/

switch(input.datatype)

{

case"number":if(isnumber(input.value)==false)

{

alert(input.chname+"值应该全为数字");

error=true;

}

break;

/*在这里可以添加多个自定义数据类型的校验判断*/

/*casedatatype1:...;break;*/

/*casedatatype2:...;break;*/

/*....................................*/

default :break;

}

}

/*根据有无错误设置或取消警示标志*/

if(error)

{

image=document.getElementById("img_"+input.name);

image.src="img/warning.gif";

returnfalse;

}

else

{

image=document.getElementById("img_"+input.name);

image.src="img/space.gif";

returntrue;

}

}

/*检测指定FORM表单所有应被检测的元素

(那些具有自定义属性的元素)是否合法,此函数用于表单的onsubmit事件*/

functionverifyAll(myform)

{

vari;

for(i=0;i

{

/*非自定义属性的元素不予理睬*/

if(myform.elements[i].chname+""=="undefined")continue;

/*校验当前元素*/

if(verifyInput(myform.elements[i])==false)

{

myform.elements[i].focus();

returnfalse;

}

}

returntrue;

}



univerify.js中,verifyAll用来校验指定表单的数据,它是逐个提取表单中的元素的,不用特别指定表单元素的名字,所以具有通用性。verifyInput是用来实际执行数据校验的函数,如果有新的数据类型datatype需要检测,用户可在此函数中添加,可扩充性好。

下面是浏览univerify_test.html网页的画面:



使用基于自定义属性的客户端统一检测方法,需要做的工作很简单:

1、在网页文件中嵌入统一检测用Javascript函数库:

2、对所用表单添加onsubmit事件处理程序:οnsubmit="returnverifyAll(this);"。其中的this指定为当前表单对象,勿需提供表单具体名字,极具通用性。

3、对每个需要检测的文本框添加chname,maxsize,nullabledatatype四个自定义属性。如果想在文本框失去焦点时对数据进行一下校验,请添加事件处理程序:onBlur="verifyInput(this);"

怎么样?使用基于自定义属性的客户端统一检测方法后,不用再为每个表单写类似的检测代码了吧,统一检测足够了。

小结:自定义属性是非常有用的属性,基于自定义属性的客户端数据统一检测方法,在B/S开发中极其有用,使用方便,可扩充性强。相信读者经过实践,自能体会到个中妙处。

0015获取地址内输入的参数

在调用网页的时候地址写入:http://localhost:8080/jsp1.jsp?st=d&xzy=cctv,则点击按钮会显示cctv.

</span></p> <p><span style="color:rgb(0,0,255);">jsp2</span></p> <p><span style="color:rgb(0,0,255);">

你好中央电视台a

002简单的文字输出

在html中直接输入下面的代码,就可以把文字输出来

document.write("JavaPrint")

还可以循环,显示10行红色的文字

<html>

<head>

head>

<body>

<script>

for(a=0;a<10;a++)

document.write("JavaPrint
"
)

script>

body>

html>

这可以生成动态的Html代码,用这种方法可以动态地创建Html元素,如层的动态创建用的就是这种方法。

003第一个函数

先显示一个提示框,再显示10行文字

<html>

<head>

<script>

functionpushbutton(str)

{

alert(str);

}

script>

head>

<body>

<script>

pushbutton("我们都是大好人");

for(a=0;a<10;a++)

document.write("JavaPrint
"
)

script>

body>

html>

003_01日期判断函数

if(isNaN(Date.parse(document.forms[0].startdatetime.value)))

{

document.forms[0].startdatetime.value=Date.parse(document.forms[0].startdatetime.value);

alert("请正确输入会议开始时间.");

return;

}

004点击网页上的按钮后执行指定的函数

<html>

<head>

<script>

functionpushbutton(str)

{

alert(str);

}

script>

head>

<body>

<p><inputtype="button"value="按钮"name="B3"onclick=pushbutton("你好")>p>

body>

html>

005丢失焦点时引发事件,显示本文本框的文字

<html>

<head>

<script>

functionMessage(str)

{

alert(str);

}

script>

head>

<body>

<p><inputtype="text"onblur=Message(this.value)name="T1"size="20"ID="Text1">p>

body>

html>

this.value是引发事件的实体的值,在按钮中也可以这么用.

直接写成

也可以,即在html语言内也可以直接写JavaScript代码。

006自动获取最后更新日期

用以下的代码可以自动获取本网页的最后更新日期.

<html>

<head>

head>

<body>

<script>

document.writeln(document.lastModified);

script>

body>

html>

007日期的显示

<html>

<head>

head>

<body>

<script>

vartoday=newDate();

vars=newString();

//02/20/200316:07:16

s=document.lastModified;

//最后更新日期:02/20/200316:17:22

document.writeln("最后更新日期:"+s+"
"
);

//最后更新日期:20030220

document.writeln("最后更新日期:"+s.substring(6,10)+""+s.substring(0,2)+""+s.substring(3,5)+"");

document.writeln("
"
);

s="今天是:"+today.getYear()+""+(today.getMonth()+1)+""+today.getDate()+"";

//今天是:2003220

document.writeln(s);

script>

body>

html>

008鼠标移过超链接时执行的操作

<Aonmouseover="window.status='Justanotherstupidlink...';returntrue"

href="00Readme.htm">连结A>

009产生随机数

<script>

vari;

vartoday=newDate();

i=Math.random();//Math.abs(Math.sin(today.getTime()));

document.write("Thisisarandomnumber:"+i);

script>

010打开新窗体

<html>

<head>

<script>

functionNewWindow()

{

//msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");

msg=open("","xzy");

msg.document.write("</span><span style="color:rgb(0,255,255);background:rgb(0,0,128);">哈罗</span><span style="color:rgb(0,255,255);background:rgb(0,0,128);">!");

msg.document.write("

酷毙了!

这是JavaScript所开的视窗!

");

}

script>

head>

<body>

<inputtype="button"value="按钮"name="B3"onclick=NewWindow()ID="Button1">

body>

html>

window.open("./GoodType.jsp?backid="+nn,null,"height=405,width=620,status=no,scrollbars=yes,toolbar=no,menubar=no,location=no")

利用open可以打开一个新窗体

语法:oNewDoc=open(sUrl[,sName][,sFeatures][,bReplace])

sUrl

显示在新窗体地址栏内,如果为空则显示为about:blank

若填写x.htm则显示G:\Xzy\JavaScript\Test\x.htm

若这个sUrl是一个存在的文件则显示这个网页

sName

新打开网页的名字,若有名字,则打开以后再重新打开时会在原先打开的网页上再次打开,不会开辟新窗体.

若为空,则每次都新开一个窗体

sFeatures

窗体外观控制:

channelmode=no/yesyes时显示一个全屏的窗体

directories=yes/nono时,显示的窗体没有工具条,不能调整大小,只能关闭

fullscreen=no/yesyes时,显示一个真正的全屏界面,没有任何操作按钮,只能用alt+f4来关闭窗体,

height=400,width=400,left=200,top=50:位置大小调整

menubar=yes/no是否显示菜单条

resizable=no/yes是否可以调整窗体的大小

scrollbars=yes/no是否显示滚动条

status=no/yes是否显示状态条

titlebar=yes/no是否显示标题栏

以下是MSDN的帮助

Syntax

oNewDoc=document.open(sUrl[,sName][,sFeatures][,bReplace])

Parameters

sUrl

Required.Whenopeninganewdocument,sUrlisaStringthatspecifiesaMultipurposeInternetMailExtensions(MIME)typeforthedocument.Whenopeninganewwindow,sUrlisaStringthatspecifiestheURLtorenderinthenewwindow.IfasUrlisnotspecified,anewwindowwithabout:blankisdisplayed.

text/html

Default.CurrentlytheonlyMIMEtypesupportedforthismethod.

sName

Optional.Whenopeningupanewdocument,specifyingtheStringreplaceforsNamedesignatesthatthenewdocumentistoreplacethecurrentdocumentinthehistorylist.Ifthevaluereplaceisnotspecifiedwhenopeningupadocument,anewentrywillsimplybeaddedtothehistorylist.Whenopeningawindow,thisisaStringthatspecifiesthenameofthewindow.ThevalueofthisparametermaybespecifiedasthevalueoftheTARGETattributeforaformoraelement.Thisvaluewillthenwilldefinethisnewwindowastheplacetoloadadocument.

replace

Thisvalueisonlyusedforopeningupanewdocumentandspecifiesthatthenewdocumentistoreplacethecurrententryinthehistorylist.

_blank

Whenopeningawindow,thesUrlisloadedintoanew,unnamedwindow.

_parent

Whenopeninganewwindow,thesUrlisloadedintothecurrentframe'sparent.Iftheframehasnoparent,thisvalueactsasthevalue_self.

_search

AvailableinInternetExplorer5andlater.Whenopeningawindow,thesUrlisopenedinthebrowser'ssearchpane.

_self

Whenopeningawindow,thecurrentdocumentisreplacedwiththespecifiedsUrl.

_top

sUrlreplacesanyframesetsthatmaybeloaded.Iftherearenoframesetsdefined,thisvalueactsasthevalue_self.

_media

AvailableinInternetExplorer6andlater.ThesUrlisloadedintheMediaBar.

sFeatures

Optional.ThisStringisonlyusedwhenopeninganewwindowandspecifiesthesettingsofthewindow'sdisplayfeatures.Thisparameterisalistofitemsseparatedbycommas.Eachitemconsistsofanoptionandavalue,separatedbyanequalssign(forexample,"fullscreen=yes,toolbar=yes").Thefollowingfeaturesaresupported.

channelmode={yes|no|1|0}

Specifieswhethertodisplaythewindowintheatermodeandshowthechannelband.Thedefaultisno.

directories={yes|no|1|0}

Specifieswhethertoadddirectorybuttons.Thedefaultisyes.

fullscreen={yes|no|1|0}

Specifieswhethertodisplaythebrowserinfull-screenmode.Thedefaultisno.Usefull-screenmodecarefully.Becausethismodehidesthebrowser'stitlebarandmenus,youshouldalwaysprovideabuttonorothervisualcluetohelptheuserclosethewindow.ALT+F4closesthenewwindow.

height=number

Specifiestheheightofthewindow,inpixels.Theminimumvalueis100.

left=number

Specifiestheleftposition,inpixels.Thisvalueisrelativetotheupper-leftcornerofthescreen.

location={yes|no|1|0}

SpecifieswhethertodisplaytheinputfieldforenteringURLsdirectlyintothebrowser.Thedefaultisyes.

menubar={yes|no|1|0}

Specifieswhethertodisplaythemenubar.Thedefaultisyes.

resizable={yes|no|1|0}

Specifieswhethertodisplayresizehandlesatthecornersofthewindow.Thedefaultisyes.

scrollbars={yes|no|1|0}

Specifieswhethertodisplayhorizontalandverticalscrollbars.Thedefaultisyes.

status={yes|no|1|0}

Specifieswhethertoaddastatusbaratthebottomofthewindow.Thedefaultisyes.

titlebar={yes|no|1|0}

Specifieswhethertodisplayatitlebarforthewindow.ThisparameterisignoredunlessthecallingapplicationisanHTMLApplicationoratrusteddialogbox.Thedefaultisyes.

toolbar={yes|no|1|0}

Specifieswhethertodisplaythebrowsertoolbar,makingbuttonssuchasBack,Forward,andStopavailable.Thedefaultisyes.

top=number

Specifiesthetopposition,inpixels.Thisvalueisrelativetotheupper-leftcornerofthescreen.

width=number

Setsthewidthofthewindow,inpixels.Theminimumvalueis100.

bReplace

Optional.WhenthesUrlisloadedintothesamewindow,thisBooleanparameterspecifieswhetherthesUrlcreatesanewentryorreplacesthecurrententryinthewindow'shistorylist.

true

sUrlreplacesthecurrentdocumentinthehistorylist

false

sUrlcreatesanewentryinthehistorylist.

ReturnValue

Returnsareferencetothenewdocumentorwindowobject.Usethisreferencetoaccesspropertiesandmethodsofthenewdocumentorwindow.

Window.open(“”,””,”scrollbars=yes,status=yes,toolbar=no,menu=no,resizable=1”)

010.1打开一个模式窗体

showModalDialog是一个模式对话框,显示后下面的窗体便不能操作了,除非将模式窗体关闭,相当于vb中的from1.show1

showModelessDialog下面的窗体还可以操作,但下面的窗体无法覆盖上面的窗体,上面的总是在上面,相当于vb中的form1.show,me

status:0表示没有底边的状态条

help:no表示没有窗体右上角的问号按钮

  dialogWidth:对话框宽度。

  dialogLeft:距离桌面左的距离。

  dialogTop:离桌面上的距离。

  center:{yes|no|1|0}:窗口是否居中,默认yes,但仍可以指定高度和宽度。

  help:{yes|no|1|0}:是否显示帮助按钮,默认yes。

  resizable:{yes|no|1|0}[IE5+]:是否可被改变大小。默认no。

  status:{yes|no|1|0}[IE5+]:是否显示状态栏。默认为yes[Modeless]或no[Modal]。

scroll:{yes|no|1|0|on|off}:指明对话框是否显示滚动条。默认为yes。

还有几个属性是用在HTA中的,在一般的网页中一般不使用。

dialogHide:{yes|no|1|0|on|off}:在打印或者打印预览时对话框是否隐藏。默认为no。

edge:{sunken|raised}:指明对话框的边框样式。默认为raised。

unadorned:{yes|no|1|0|on|off}:默认为no。

先打开一个新网页index.jsp,关闭后显示msgbox的内容。

帮助说明,里面有更多的东西,还可以传递参数

Javascript有许多内建的方法来产生对话框,如:window.alert(),window.confirm(),window.prompt().等。然而IE提供更多的方法支持对话框。如:

  showModalDialog()(IE4+支持)
  showModelessDialog()(IE5+支持)


window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。

当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时,打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。

使用方法如下:
vReturnValue=window.showModalDialog(sURL[,vArguments][,sFeatures])
vReturnValue=window.showModelessDialog(sURL[,vArguments][,sFeatures])
参数说明:
sURL
必选参数,类型:字符串。用来指定对话框要显示的文档的URL
vArguments
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
dialogHeight对话框高度,不小于100px,IE4中dialogHeightdialogWidth默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
dialogWidth:对话框宽度。
dialogLeft:距离桌面左的距离。
dialogTop:离桌面上的距离。
center:{yes|no|1|0}:窗口是否居中,默认yes,但仍可以指定高度和宽度。
help:{yes|no|1|0}:是否显示帮助按钮,默认yes
resizable:{yes|no|1|0}[IE5+]:是否可被改变大小。默认no
status:{yes|no|1|0}IE5+]:是否显示状态栏。默认为yes[Modeless]no[Modal]
scroll:{yes|no|1|0|on|off}:指明对话框是否显示滚动条。默认为yes

还有几个属性是用在HTA中的,在一般的网页中一般不使用。
dialogHide:{yes|no|1|0|on|off}:在打印或者打印预览时对话框是否隐藏。默认为no
edge:{sunken|raised}:指明对话框的边框样式。默认为raised
unadorned:{yes|no|1|0|on|off}:默认为no

传入参数:
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如

test1.htm
====================

test2.htm
====================

test3.htm
====================

可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:

test4.htm
===================

test5.htm
===================

n网页间数据的传递

可以向用showModalDialogshowModelessDialog打开的窗体传递参数,参数可以是字符串,也可以是对象,如数组或窗体对象

例子:test1.htm打开test2.htm,并向test2.htm传递一个数组对象作为参数

test1.htm

test2.htm

下面是传递document对象的例子

test1.htm

test2.htm

下面是个传递窗体对象的代码

011在框架中的子网页调用其它子网页内的函数

上面网页中使用了框架,点击下边超链接时上边的网页显示一个随机数,点击按钮时,调用上边网页内的一个函数,onclick="parent.xzy1.Print('这是由按钮产生的文字')",,上边网页将传入的参数显示出来.

框架

Frames

上部网页

<html>

<head>

<script>

functionPrint(Str)

{

alert(Str);

}

script>

head>

<body>

<script>

document.writeln(Math.random());

script>

body>

html>

下部网页

<html>

<head>

head>

<body>

<Ahref="a1.html"target="xzy1">产生新随机数A>

<inputtype="button"value="按钮"name="B3"onclick="parent.xzy1.Print('这是由按钮产生的文字')">

body>

html>

当超链接使用<Ahref="a1.html"TARGET="_top">产生新随机数A>

时,目标网页可以充满整个frame.

012与原启动窗口互动:

window.opener.document.form1.text1.value=””;

013使用定时器

JavaScript中的定时器是利用一个函数,setTimeout(调用函数,延时),下面的程序会在显示网页的状态栏中不停地显示一个随机数

<html>

<head>

<script>

functionscroll()

{

window.status=Math.random();

setTimeout("scroll()",300);//300ms

}

script>

head>

<bodyonLoad="scroll()">

body>

html>

013读取和设置网页上元素的值

n例子1,用名称访问

这里以一个网页的加法器来示范,如何读取和设置,Text框的文字.

<html>

<head>

<script>

functionMake()

{

vara1;

vara2

vara3;

a1=parseInt(document.first.text1.value);//first就是Form的名称

a2=parseInt(document.first.text2.value);

a3=a1+a2;

document.first.text3.value=a3;

}

script>

head>

<body>

<FORMname=first>

<INPUTname=text1value="0"size=5>+

<INPUTname=text2value="0"size=5>

<INPUTonclick="Make()"type=buttonvalue="输入测试"name=button1size=5>

<INPUTname=text3size=5>

FORM>

body>

html>

n(2)例子2,用数组访问

本例的功能:2个text框的内容保持一致,当一个改变时,另外一个也相应的改变.

窗体和上面的元素都是可以通过数组来访问的.

<Html>

<head>

head>

<body>

<formName="Form1">

--Form2的第一个元素的值和本元素的值相同-->

1:<inputtype=textonChange="document.Form2.elements[0].value=this.value;"ID="Text1"NAME="Text1">

form>

--网页上第一个窗体的第一个元素的值和本元素的值相同-->

<formNAME="Form2">

2:<inputtype=textonChange="document.forms[0].elements[0].value=this.value;"ID="Text2"NAME="Text2">

form>

body>

html>

n(3)实现邮箱中全选的功能(遍历窗体对象)

本例实现的功能,当点中全选按钮时,所有的信件全被选中,并显示删除图片,且图片的鼠标是手(hand)形状的

初始点击全选时

完整的代码

<html>

<head>

<script>

functiont()

{

vari;

for(i=0;i0].elements.length;i++)

{

if(document.forms[0].elements[i].name.substring(0,1)=="C")

document.forms[0].elements[i].checked=document.forms[0].All.checked;

}

/*

也可以这么写,效果是一样的,只不过将所有的元素都放置在了数组elems,代码可以短些

varelems=window.document.forms[0].elements;

for(vari=0;i

{

if(elems[i].name.substring(0,1)=="C")

{

elems[i].checked=document.forms[0].All.checked;

}

}

*/

if(document.forms[0].All.checked)

document.forms[0].PicButton.style.display="inline"//显示图片

else

document.forms[0].PicButton.style.display="none"//隐藏图片

}

script>

head>

<bodybgcolor="pink">

<formname="f1">

<p><inputtype="checkbox"name="C1"value="ON">信件1p>

<P><inputtype="checkbox"name="C2"value="ON">信件2P>

<P><inputtype="checkbox"name="C3"value="ON">信件3P>

<p><inputtype="checkbox"name="C4"value="ON">信件4p>

<p><inputtype="checkbox"name="All"value="ON"onclick="t()">全选p>

<p>

<IMG

src="人事档案.files/rb_erase_up.gif"border=0

name="PicButton"width="60"height="18"

style="DISPLAY:none;CURSOR:hand"onclick=DelCode();

>

p>

form>

body>

html>

014移动层

完整代码

层的声明:

下面是一个简单的层,上面显示着2行文字

<divid="Layer1"style="position:absolute;left:217px;top:63px;width:60px;height:72px;background-color:#FFFF99;z-index:1">

<p>abcp>

<p>cctvp>

div>

移动层的代码

<script>

functionmove(x)

{

if(x>100)x=0;

x=x+1;

Layer1.style.posTop=x;

Layer1.style.posLeft=x;

window.status=x;//Math.random();

setTimeout("move("+x+")",100);

}

script>

015层随鼠标移动

在网页上移动鼠标时,鼠标移动到那里,层便跟随到那里。

<html>

<head>

<SCRIPTlanguage="javascript">

SCRIPT>

head>

<bodyonmousemove="move();">

<divid="div1"style="position:absolute;left:250px;top:118px;background-color:#FFFF99;width:60px;height:37px;z-index:"50">

这是测试的层

div>

body>

html>

016使用宏替换eval

设图层上有一个层,名字叫Layer1,可以用下面的代码利用字符串型的层名字来指向实际的层.

varl;

vars;

s="Layer1";

l=eval(s);

l.style.posTop=200;

varl;

vari;

i=1;

l=eval("Layer"+i);

l.style.posTop=200;

上面的代码都会使层Layer1移动位置.

017移动的正弦波(层)

需要注意的是:document.write只能第一次有效,再次写的write的源代码就变了,所以程序中第一次创建好层后,再次移动时采用的是改变已有层的位置.

解释:层一经创建,便存在于网页中,再创建会重复的.

代码

thisdiv=eval("Layer"+(x)+".style");

thisdiv.posTop=y;

thisdiv.posLeft=x;

是将字符串的变量转为实际的变量,使用的函数是eval,好像fox的宏一样

thisdiv.posTop等价于Layeri.style.posTop

018显示和隐藏层

设层的名字是Layer1

显示:Layer1.style.visibility="visible";

隐藏:Layer1.style.visibility="hidden";

利用显示和隐藏层可以制作菜单

019一个简单菜单的例子

020、一个字符串编码再解码的过程

functiona()

{

varstr="你好B.,#ccsldfk";

vars2=EnCode(str);

alert(UnCode(s2));

}

//str转换为编码用x分割如:20320x65x66x67x

functionEnCode(str)

{

vars;

varn;

s="";

for(n=0;n

s=s+str.charCodeAt(n)+"x";

returns;

}

//EnCode转换出的编码串再转为字符串

functionUnCode(str)

{

vari;

varscode;

varrs;

if(str=="")return"";

i=str.indexOf("x",0);

rs=""

while(i>0)

{

scode=str.substring(0,i)

rs=rs+String.fromCharCode(scode);

str=str.substring(i+1);

i=str.indexOf("x",0);

}

returnrs;

}

020span,div,动态html

点击添加后文字显示到

text1value=""size=5>

""type="button"value="添加"onClick="Insert()">

'ShowArea'>



邢志云的测试

这是非常好的性能,可以在网页上显示出任意的动态代码.

Span和div都可以作为嵌入式代码的载体,如可以在span的首尾写上表格的控制,然后在span内填写表体的代码.

 

 

021动态生成表格

""type="button"value="添加"onClick="Insert()">

"表格"BORDER="1">

删除表格节点

表格.removeNode(true);

022使用createElement来动态创建网页元素,按钮文本框都可以

n基本

""type="button"value="添加"onClick="Insert()">


divUpdate>>


n带事件的

</span></p> <p><span style="color:rgb(0,0,255);">卡片信息维护</span></p> <p><span style="color:rgb(0,0,255);">

023可以添加删除内容网页



024给网页元素添加自定义属性

这里的代码给一个文本框添加了一个属性,字段名



可以给各种元素添加自定义的属性,如下给div添加


这是层


025利用Microsoft.XMLDOM控件,不刷新网页直接从服务器上读取xml文件数据

n说明

Microsoft.XMLDOM是IE5.0以上浏览器自带的。

从客户端网页上利用控件Microsoft.XMLDOM,可以读取服务器上xml格式的文件,要求客户端的IE浏览器上设置,win2000中默认是开启的,win2003中默认是关闭的.csdn上的论坛列表就是用这种方式实现的,如果禁用了ActiveX,则进入论坛的时候会报错.

这个控件很有用,可以实现不刷新网页而直接加载信息,有时我们在网页上选取相关下拉列表时,可以不刷新而动态改变下拉列表的内容.

n简单例子

下面的例子,从硬盘或Internet上读取一个xml文件,并把这个文件完整的显示在客户端

新建网页2

也可以读取本机的xml文件,如把如下的文字,保存到一个xml文件中

在上面的load中写上这个文件的路径即可,如下

Xsldom.load("E:\\Temp\\xtree\\xtree\\files\\exe.xml");

这个文件必须是xml格式的,下面好像是最简单的了

中国人民万岁

全世界大团结万岁

n创建XML串

利用XMLDOM可以在IE上生成XML格式的信息串.

xml中若使用了特殊字符需要替换,如用<需要被替换为<

<

<

小于

>

>

大于

&

&

&符号

'

'

省略号

"

"

引号

如果数据中有大量的特殊字符,如<,则可以用来直接显示原始的内容.

ifa>8大于then

<99>

]]>

数据2

一个xml文件是有根、节点、节点的属性、值等元素构成的,其中,节点是有层次关系的,一个节点可以被另外的节点嵌套,并且可以嵌套许多层。

利用XMLDOM可以将页面上的信息生成为xml文件格式的字符串。

下面的代码可以产生以上格式的xml字符串:

新建网页2

n从XMLDOM中分离出XML数据

数据可以从xml中被分离出来,可以实现这样的效果,通过xmldom,将数据提交个一个后台网页,该网页接收到信息后,进行操作,然后将操作结果生成一个xml文件,再通过xmldom读取并分离出数据,显示在本地,这样就实现了不提交,也不刷新而实现了数据和服务器的交互.

新建网页2

nNode.item(0).childNodes.item(j).nodeName//得到节点名

Node.item(0).childNodes(0).nodeName//只有一条记录时得到节点名

LoadXml(“”)加载字符串。

026使用XML数据岛

n显示数据到表格中

在HTML中可以将XML数据填写岛表格中

把一下2个文件放到同一个目录中,运行index.htm即可

文件:people.xml

<员工>

<姓名>周星驰

<性别>男

<籍贯>上海

<出生日期>1965.10

<员工>

<姓名>张卫健

<性别>男

<籍贯>山东

<出生日期>1972.5

<员工>

<姓名>Robot

<性别>maile

<籍贯>USA

<出生日期>1948.6

文件:index.htm

src="people.xml"

id="xmldso"

async="false">

datasrc="#xmldso"

width="100%"

border="1">

员工姓名

员工性别

员工籍贯

生日

datafld="姓名">

datafld="性别">

datafld="籍贯">

datafld="出生日期">

显示效果

n显示到span或div中,移动结果集指针

还是用刚才的people.xml,里面的span换成div也可以.

functionmovenext()

{

 x=xmldso.recordset

 if(x.absoluteposition

 {

  x.movenext()

 }

}

functionmoveprevious()

{

 x=xmldso.recordset

 if(x.absoluteposition>1)

 {

  x.moveprevious()

 }

}


name:


gender:


nation:

οnclick="moveprevious()"/>

οnclick="movenext()"/>

n数据随表格行刷新

点击表格的行,上部内容随之刷新

functiontestclick(field)

{

varrow=field.rowIndex

xmldso_list.recordset.absoluteposition=row

td_姓名.innerHTML=xmldso_list.recordset("姓名")

td_性别.innerHTML=xmldso_list.recordset("性别")

td_籍贯.innerHTML=xmldso_list.recordset("籍贯")

td_出生日期.innerHTML=xmldso_list.recordset("出生日期")

}

姓名:

性别:

籍贯:

出生日期:

点击表格中的行:

姓名

性别

籍贯

出生日期

027XML的http请求

可以将网页的或xml的代码读回来.

functiongetPage()

{

varobjHTTP=newActiveXObject("Microsoft.XMLHTTP")

objHTTP.Open('GET','http://www.w3schools.com/xml/tryit.asp?filename=httprequest_js',false)

objHTTP.Send()

document.all['A1'].innerText=objHTTP.status

document.all['A2'].innerText=objHTTP.statusText

document.all['A3'].innerText=objHTTP.responseText//网页的查看源代码内容

document.all['A4'].innerHTML=objHTTP.responseText//网页的HTML显示效果

}

UsingtheHttpRequestObject

status:

statustext:

response:


response:


029判断一个字符串是否为纯中文

030转为unicode编码(escape和unescape)

functionEscapeTest()

{

vars;

vars1;

vars2;

s="你好abc中国";

s1=escape(s);

alert(s1);

s2=unescape(s1);

alert(s2);

}

031样式表

样式表的操作元素

background:yellow;

背景色

background-image:url(http://news.sohu.com/nimages/news_logo_1.gif)

背景图片

background-repeat:no-repeat;
repeatrepeat-xrepeate-yno-repeat

背景是否重复

H4{border-top-width:2px;border-bottom-width:5px;border-left-width:1px;border-right-width:1px}

边框:IE不支持

background-attachment:fixed;
scroll、fixed

作为body的背景时,不随滚动条移动

background-position:centerbottom

背景的位置

color:green;

color:rgb(255,0,0)

文字颜色

font-family:宋体;

font-weight:bold

粗体

font-size:12px

margin-top:20px;margin-bottom:5px;margin-left:100px;margin-right:55px

边距

A{position:absolute;left:100px;top:15px}

绝对定位

position:relative;left:40px;top:10px

相对定位

text-align:center

文字的对齐方式

text-indent:1cm;

文字左边距,也可作为文字缩进的设置P{text-indent:26px}

B{text-transform:uppercase}

以下为所有可用的参数:

·uppercase使所有字母大写显示,

·lowercase使所有字母小写显示,

·capitalize使每个单词的第1个字母大写显示,

·none使所有继承的文字变形参数被忽略,文字将以正常形式显示。
例:
Thissentenceservesasanexample.

B{text-decoration:underline}

大部分的选项使得文字变得难以阅读:

·underline给文字下划线,

·overline给文字上划线,

·line-through给文字划出删除线,

·blink文字在闪烁,好心不起作用

·none使得上述效果都不会发生。

word-spacing:50px;letter-spacing:5px

文字间距和字符间距,每个汉字算一个字符,空格分开的算一个字.

line-height:26px

行高

vertical-align:top

垂直对齐方式

·top将要素顶部同最高的母体要素对齐。

·bottom将要素的底部同最低的母体要素对齐。

·text-top将要素的顶部同母体要素文字的顶部对齐。

·text-bottom将要素的底部同母体要素文字的底部对齐。

·baseline将要素的基准线同母体要素的基准线对齐。

·middle将要素的中点同母体要素的中点对齐。

·sub将要素以下标的形式显示。

·super将要素以上标的形式显示。

visibility:hidden
visible使要素可以被看见

hidden使要素被隐藏

inherit指它将继承母体要素的可视性设置。

隐藏属性

n基础

我的第一个样式表

H1{color:green;font-size:37px;font-family:impact}

P{text-indent:1cm;background:yellow;font-family:宋体;font-size:12px}

在H1之间的文字

^_^我们都是大坏蛋

之间的是样式表定义.可以精确的控制文字大小,边距等.

n归类

H1,P,BLOCKQUOTE{font-family:arial}

可以一次对多个tag定义样式表

n使用外部样式表

把样式表存储在一个文件中,然后许多网页都可以使用这个样式表

我的第一个样式表

在H1之间的文字

^_^我们都是大坏蛋

其中mystyles.css的内容是

H1{color:green;font-size:37px;font-family:impact}

P{text-indent:1cm;background:yellow;font-family:宋体;font-size:12px}

n同时使用外部样式表和本页样式表

可以同时引入多个外部样式表,还可以将外部样式表和本页样式表同时使用

我的第一个样式表

TEXTAREA{background:yellow;color:red;}

在H1之间的文字

^_^我们都是大坏蛋

你好

n样式表的分类

样式表中使用的标签必须是html中已经定义了的标签,如果要自定义样式,则需要在现有的标签上进行分类

我的第一个样式表

a{color:#FF00FF}

a.xzy1{color:red}

a.xzy2{color:purple}

.通用分类{color:gray}

A无分类

A分类1

A分类2

A分类3

n情景选择

我的第一个样式表

PB{color:red}/*在p内的并且是b的才变成红色*/

你好我们的地球

n字体大小(em)

我的第一个样式表

P{font-size:20px}

B{font-size:1.5em}/*母体字号的1.5倍,如果B用在P中则会是20px,B{font-size:200%}也能实现翻倍的效果*/

你好我们的地球

尺寸单位有许多

·in(英寸)

·cm(厘米)

·mm(毫米)

·pc(打字机字型尺寸单位)

·ex(x-height)

·px

·point

n边框的颜色实现彩色下划线

利用边框颜色可以实现彩色下划线

我的第一个样式表

"border-style:solid;border-width:2px;border-color:#FFFFFF#FFFFFF#FF0000#FFFFFF;line-height:26px"color="#000000">

关于这次工程的报告,下次工程
的计划

显示效果

border-style可以是以下:

solid、double、dotted、dashed、groove、ridge、inset、outset

n文字的精确定位

我的第一个样式表

A{position:absolute;left:100px;top:15px}

你好

n链接的颜色控制

nCSS的行为

当鼠标移动到网页的文字上时,该文字变成蓝色,移除时该文字变成黑色.这个行为是在文件behave.htc中定义的.

将行为和网页分离.

将下面的2个文件放到同一个目录中.

文件:Index.htm

MoveyourMouseoverme

文件:behave.htc

functionhig_lite()

{

element.style.color=255

}

functionlow_lite()

{

element.style.color=0

}

032列出对象的所有属性

在html中,对象的属性不易获得,如层的style可以写多少css属性控制,或document中有多少属性,可以用下面代码获得想要对象的所有属性

下面是:层的style属性中有多少子属性

获取对象的属性:

033鼠标键盘事件:

只输入数字:

functionJHshNumberText()

{

if(!(((window.event.keyCode>=48)&&(window.event.keyCode<=57))||(window.event.keyCode==13)||(window.event.keyCode==46)||(window.event.keyCode==45)))

{

window.event.keyCode=0;

}

}

按键转向

functionkeydown()

{

e=window.event;

if(e.keyCode==13)

e.keyCode=9;

}

document.οnkeydοwn=keydown;

034对话框操作对象

window.dialogArgument.document;

035时间操作:

functionCheckDate(vNewValue)

{

//DimStateAsLong

varState;

//DimCountAsLong

varCount;

//DimForceExitAsLong

varForceExit;

//DimCAsString*1

varC;

//DimOnlyYMAsBoolean'是否只有YearMonth,

varOnlyYm;

//M_CheckThrough=False

varM_CheckThrough;

//vNewValue=MyTrim(vNewValue)

vNewValue=MyTrim(vNewValue);

//M_Source=vNewValue

varM_Source;

//M_Date=""

M_Date="";

//M_Year=""

M_Year="";

//M_Month=""

M_Month="";

//M_Day=""

M_Day="";

//

//M_Year=Mid(vNewValue,1,4)

M_Year=vNewValue.substring(0,4);

//IfNot(1900<=MyVal(M_Year)AndMyVal(M_Year)<=2100)Then

//if(!("1900"<=M_Year&&M_Year<="2100"))

// return"Error";

//CallSetError

//ExitProperty

//EndIf

//vNewValue=Mid(vNewValue&"",5)

vNewValue=vNewValue.substring(4);

//State=1

State=1;

//C=""

C="";

//ForceExit=0

ForceExit=0;

//OnlyYM=False

OnlyYM=false;

//WhileState<>8AndForceExit<88

while(State!=8&&ForceExit<88)

{

//ForceExit=ForceExit+1

ForceExit=ForceExit+1

//SelectCaseState

//alert(State);

switch(State)

{

//Case1

case1:

//Count=1

Count=1;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//If"0"<=CAndC<="9"Then

if("0"<=C&&C<="9")

State=3;

//State=3

//ElseIfC=""Then

elseif(C=="")

//State=8

State=8;

//Else

else

//State=2

State=2;

//EndIf

break;

//Case2

case2:

//Count=Count+1

Count++;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//alert(vNewValue);

//alert(Count);

//alert(C);

//If"0"<=CAndC<="9"Then

if("0"<=C&&C<="9")

//State=3

State=3;

//ElseIfC=""Then

elseif(C=="")

//State=8

State=8;

//Else

else

return"Error";

//CallSetError

//ExitProperty

//EndIf

break;

//Case3

case3:

//M_Month=M_Month&C

M_Month+=C;

//Count=Count+1

Count++;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//If"0"<=CAndC<="9"Then

//alert("*"+vNewValue);//12-31

//alert(Count);

//alert("month"+M_Month);

//alert(vNewValue.substring(4,1));

if("0"<=C&&C<="9")

//State=4

State=4;

//ElseIfC=""Then

elseif(C=="")

//State=9

State=9;

//Else

else

//State=5

State=5;

//EndIf

break;

//Case4

case4:

//M_Month=M_Month&C

M_Month+=C;

//Count=Count+1

Count++;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//If"0"<=CAndC<="9"Then

if("0"<=C&&C<="9")

//State=6

State=6;

//ElseIfC=""Then

elseif(C=="")

//State=9

State=9;

//Else

else

//State=5

State=5;

//EndIf

break;

//Case5

case5:

//Count=Count+1

Count++;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//If"0"<=CAndC<="9"Then

if("0"<=C&&C<="9")

//State=6

State=6;

//ElseIfC=""Then

elseif(C=="")

//State=8

State=8;

//Else

else

//State=9

State=9;

//EndIf

break;

//Case6

case6:

//M_Day=M_Day&C

M_Day+=C;

//Count=Count+1

Count++;

//C=Mid(vNewValue,Count,1)

C=vNewValue.substring(Count-1,Count);

//If"0"<=CAndC<="9"Then

if("0"<=C&&C<="9")

//State=7

State=7;

//ElseIfC=""Then

elseif(C=="")

//State=8

State=8;

//Else

else

//State=8

State=8;

//EndIf

break;

//Case7

case7:

//M_Day=M_Day&C

M_Day+=C;

//State=8

State=8;

break;

//Case8

case8:

break;

//Case9

case9:

//M_Day="01"

M_Day="01";

//OnlyYM=True

OnlyYM=true;

//State=8

State=8;

break;

//EndSelect

}

//Wend

}

//M_Date=M_Year&"/"&M_Month&"/"&M_Day

//M_Date=M_Year+"/"+M_Month+"/"+M_Day;

if(!(parseInt(M_Year,10)>=1900&&parseInt(M_Year,10)<=2100))

return"Error";

if(!(parseInt(M_Month,10)>=1&&parseInt(M_Month,10)<=12))

return"Error";

if(!(parseInt(M_Day,10)>=1&&parseInt(M_Day,10)<=31))

return"Error";

if(M_Month.length<2)M_Month="0"+M_Month;

if(M_Day.length<2)M_Day="0"+M_Day;

//IfNot(IsDate(M_Date))Then

//CallSetError

//ExitProperty

//EndIf

//M_Date=Format(CDate(M_Date),"YYYY-MM-DD")

M_Date=M_Year+"-"+M_Month+"-"+M_Day;

//IfOnlyYMThen

//M_Date=Mid(M_Date,1,7)&""

//EndIf

if(OnlyYM)

M_Date=M_Year+"-"+M_Month+"";

//M_CheckThrough=True

//M_ErrorString=""

//EndProperty

returnM_Date;

}

IsDate(date)

用JavaScript实现显示时间和日期

分类:

JavaScript

内容:

JavaScript@NowEquivalent
Haveyoueverneededtosetafield'svaluetothecurrenttime?Probably.Justput@NowintheDefaultValueeventofthefield.But,thisisthetimethattheserverthinksitis!Whatifyouwanttoknowthetimeyouruserison.

Considerthenotes.netcafé.WhenIcreateadocumentitsaysitwasatthetimetheserverison,notme.Soit'saliereally.That'snotwhen*I*createdit.Woulditnotbemoreusefulifyouknewthetimethatsomebodyrepliedtoyouintheirtime?Ithinkso.

TheonlywaytodothisistouseClient-SideJavaScript.Thefollowingfunctionreturnsastringintheformat:

"dd/mm/yyyyhh:mm:ss"
(or"mm/dd"ifitisrequiredinthatformat).

Youcancallitfromahyper-linkthattheuserclicks,intheonLoadeventoftheformorwhentheusersubmitstheform.It'suptoyouandyourrequirements...

日期转换

Date.parse()

isNaN(numvalue)

isNaN(Date.parse(document.forms[0].startdatetime.value))

格式:2004/10/0816:53

显示格式:

现在是

20041228星期二

上午11:07:28

时间可变化。

cellPadding=0width=370align=centerborder=0>

现在是

036检查数据是否为空:

functionchkIsEmpty(field,errMsg){

if(field&&trim(field.value)==""){

alert(errMsg);

field.focus();

field.select();

returntrue;

}elsereturnfalse;

}

037去除空格:

functiontrim(string1)

{

varnewstring;

newstring=string1;

varindex1=newstring.lastIndexOf('');

while(index1>-1)

{

varnewstring1=newstring.substring(0,index1);

varnewstring2="";

if((newstring.length-1)!=index1)

{

varnewstring2=newstring.substring(index1+1,newstring.length);

}

newstring=newstring1+newstring2;

index1=newstring.lastIndexOf('');

}

returnnewstring;

}

functionMyTrim(str)

{

//returnstr.replace(/^\s*/,'').replace(/\s*$/,'');

vars;

s=str.replace("","");

if(s!=str)

s=MyTrim(s);

returns

}

//FunctionName:trim
//FunctionDescription:去除字符串的首尾的空格
//CreationDate:2004-7-1315:30
//LastModifyBy:N/A
//LastModifyDate:N/A
String.prototype.trim=function(){
returnthis.replace(/(^s*)|(s*$)/g,"");
}

//FunctionName:ltrim
//FunctionDescription:去除字符串的左侧的空格
//CreationDate:2004-7-139:58
//LastModifyBy:N/A
//LastModifyDate:N/A
String.prototype.ltrim=function()
{
returnthis.replace(/(^s*)/g,"");
}

//FunctionName:rtrim
//FunctionDescription:去除字符串的右侧的空格
//CreationDate:2004-7-1315:31
//LastModifyBy:N/A
//LastModifyDate:N/A
String.prototype.rtrim=function()
{
returnthis.replace(/(s*$)/g,"");
}

038遍历表单元素

for(i=0;i

{

if(window.document.forms[0].elements[i].type=="text"&&window.document.forms[0].elements[i].title=="1"){

vararrNames=Xsldom.getElementsByTagName(window.document.forms[0].elements[i].name);

arrNames.item(0).text="rrrr";

}

039装入xml及修改值

functionloadxml(str)

{

varXsldom;

Xsldom=newActiveXObject("Microsoft.XMLDOM");

Xsldom.async=false;

//alert(str);

Xsldom.load(str);

//alert(Xsldom.xml);

for(i=0;i

{

if(window.document.forms[0].elements[i].type=="text"&&window.document.forms[0].elements[i].title=="1"){

vararrNames=Xsldom.getElementsByTagName(window.document.forms[0].elements[i].name);

arrNames.item(0).text="rrrr";

}

}

alert(Xsldom.xml);

//Node=Xsldom.documentElement.childNodes;

//for(i=0;i

//{

// OptionItem.options[i+1]=newOption(Node.item(i).text,Node.item(i).text);

//}

}

049向服务器提交xml

varoXmlHttp=newActiveXObject("Microsoft.XMLHTTP");

//ÕâÀï»»³ÉÄã×Ô¼ºµÄServerNameºÍVirtualDir

oXmlHttp.Open("POST","/test/test.jsp",false);

oXmlHttp.setRequestHeader("Content-Type","text/xml")

//alert(Xsldom.xml);

oXmlHttp.Send(Xsldom.xml);

//if(oXmlHttp.status!="200")

//{

//alert("ûÓзµ»ØÕýÈ·µÄÊý¾ÝÀàÐÍ¡£")

//returnfalse

//}

alert(oXmlHttp.responseXML.xml);

//xmlTest.loadXML(oXmlHttp.responseXML.xml);

050添加元素

vars

node=document.createElement("

");

node.id="query"+i;

node.number=i;

s=""

s=s+""

s=s+""

s=s+""

s=s+""

s=s+""

s=s+""

node.innerHTML=s;

divquery.appendChild(node);

1.οncοntextmenu="window.event.returnvalue=false"将彻底屏蔽鼠标右键
no可用于Table
2.取消选取、防止复制
3.οnpaste="returnfalse"不准粘贴

4.οncοpy="returnfalse;"oncut="returnfalse;"防止复制

5.IE地址栏前换成自己的图标

6.可以在收藏夹中显示出你的图标

7.关闭输入法

8.永远都会带着框架


9.防止被人frame


10.网页将不能被另存为

11.查看网页源代码
οnclick="window.location='view-source:'+'http://www.csdn.net/">

12.怎样通过asp的手段来检查来访者是否用了代理
<%ifRequest.ServerVariables("HTTP_X_FORWARDED_FOR")<>""then
response.write"您通过了代理服务器,"&_
"真实的IP"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
endif
%>

13.取得控件的绝对位置

//javascript

functiongetIE(e){
vart=e.offsetTop;
varl=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"\nleft="+l);
}


//VBScript


14.光标是停在文本框文字的最后

functioncc()
{
vare=event.srcElement;
varr=e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}



15.判断上一页的来源
asp:
request.servervariables("HTTP_REFERER")

javascript:
document.referrer

16.最小化、最大化、关闭窗口







最小化οnclick=hh1.Click()>
最大化οnclick=hh2.Click()>
关闭οnclick=hh3.Click()>
本例适用于IE

17.
<%
'定义数据库连接的一些常量
ConstadOpenForwardOnly=0'游标只向前浏览记录,不支持分页、RecordsetBookMark
ConstadOpenKeyset=1'键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、RecordsetBookMark
ConstadOpenDynamic=2'动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)
ConstadOpenStatic=3'静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

ConstadLockReadOnly=1'锁定类型,默认的,只读,不能作任何修改
ConstadLockPessimistic=2'当编辑时立即锁定记录,最安全的方式
ConstadLockOptimistic=3'只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
ConstadLockBatchOptimistic=4'当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

ConstadCmdText=&H0001
ConstadCmdTable=&H0002
%>

18.网页不会被缓存
HTM网页



或者
ASP网页
Response.Expires=-1
Response.ExpiresAbsolute=Now()-1
Response.cachecontrol="no-cache"
PHP网页
header("Expires:Mon,26Jul199705:00:00GMT");
header("Cache-Control:no-cache,must-revalidate");
header("Pragma:no-cache");


19.检查一段字符串是否全由数字组成


20.获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight

21.怎么判断是否是字符
if(/[^\x00-\xff]/g.test(s))alert("含有汉字");
elsealert("全是字符");

22.TEXTAREA自适应文字行数的多少



23.日期减去天数等于第二个日期

functioncc(dd,dadd)
{
//可以加上错误处理
vara=newDate(dd)
a=a.valueOf()
a=a-dadd*24*60*60*1000
a=newDate(a)
alert(a.getFullYear()+""+(a.getMonth()+1)+""+a.getDate()+"")
}
cc("12/23/2002",2)


24.选择了哪一个Radio

functioncheckme()
foreachobinradio1
ifob.checkedthenwindow.alertob.value
next
endfunction

style
Barcode



25.获得本页urlrequest.servervariables("")集合
Response.Write"Variablesvalue"
foreachobinRequest.ServerVariables
Response.Write""&ob&""&Request.ServerVariables(ob)&""
next
Response.Write""

26.
本机ip<%=request.servervariables("remote_addr")%>
服务器名<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
脚本超时时间<%=Server.ScriptTimeout%>
本文件路径<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎<%=ScriptEngine&"/"&ScriptEngineMajorVersion&"."&ScriptEngineMinorVersion&"."&ScriptEngineBuildVersion%>
服务器操作系统<%=Request.ServerVariables("OS")%>

27.ENTER键可以让光标移到下一个输入框


28.检测某个网站的链接速度:
把如下代码加入区域中:

tim=1
setInterval("tim++",100)
b=1

varautourl=newArray()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"

functionbutt(){
document.write("")
for(vari=1;i document.write("测试中……>==
")

document.write("刷新>")
}
butt()
functionauto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+""}
b++
}
functionrun(){for(vari=1;ihttp://";+autourl[i]+"')>")}
run()


29.各种样式的光标
auto:标准光标
default:标准箭头
hand:手形光标
wait:等待光标
textI形光标
vertical-text:水平I形光标
no-drop:不可拖动光标
not-allowed:无效光标
help?帮助光标
all-scroll:三角方向标
move:移动标
crosshair:十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

1.本地无缓存,每次自动刷新
response.expires=0
response.addHeader"pragma","no-cache"
response.addHeader"cache-control","private"

2.修改contentType并下载gif等格式
<%
functiondl(f,n)
onerrorresumenext

sets=CreateObject("Adodb.Stream")
S.Mode=3
S.Type=1
S.Open
s.LoadFromFile(server.mappath(f))
iferr.number>0then
response.writeerr.number&":"&err.description
else
response.contentType="application/x-gzip"
response.addheader"Content-Disposition:","attachment;filename="&n
response.binarywrite(s.Read(s.size))
endif
endfunction

calldl("012922501.gif","t1.gif")
%>


19.检查一段字符串是否全由数字组成


20.获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight
document.body.offsetWidth,document.body.offsetHeight
有时还需要知道window.screenTop,window.screenLeft

21.怎么判断是否含有汉字
if(escape(str).indexOf("%u")!=-1)alert("含有汉字");
elsealert("全是字符");

22.TEXTAREA自适应文字行数的多少
IE5.5+可以用overflow-y:visible



23.日期减去天数等于第二个日期

functioncc(dd,dadd)
{
//可以加上错误处理
vard=newDate(dd.replace("-","/"))
d.setDate(d.getDate()+dadd)
alert(d.getFullYear()+""+(d.getMonth()+1)+""+d.getDate()+"")
}
cc("2002-2-28",2)

table操作

varobjTR=objTD.parentElement;

varobjTable=objTR.parentElement;

objTD.parentElement.parentElement.rowIndex

objTD=objTR.childElement

objTable.rows[i].cells[0].all.fieldname//得到td下的表单对象

event.srcElement

objTR.rowIndex;

varobjRow=objTable.insertRow();//增加行

alert(objRow.tagName);

objRow.bgColor="#BFCBCC";

idTabs.setAttribute("tabstate",iTabSelected);

for(i=1;i

//alert(objTable.rows[i].tagName);

objTable.deleteRow(objTable.rows[i].rowIndex);

}

n如何固定表格宽度--

<>


auto:默认值
fixed:宽度固定,截断超出的内容


normal:默认值,按字词截断换行
break-all:强行截断并换行
keep-all:不截断不换行

style="TABLE-LAYOUT:fixed;WORD-WRAP:break-word"

用好HTML的表格标记

 一、作系列横单线


  这是系列横单线试验,效果还好吧?
  在这个例子中,用到了表格主标题标记,它的语法如下:
align=left|center|right
valign=top|bottom>
  align和valign分别用于设定标题的水平位置和垂直位置。align的默认值是center;valign的默认值是top。利用标记可以方便地在紧靠边表格的顶部或底部写上文字,且居中,若用其它办法要麻烦得多。另外在本例中能使表格产生单线效果是设置了

标记的rules和frame参数,rules参数是对表格的内部边框作显示控制。
rules="none":表示不加内部边框;
rules="rows":表示只显示水平方向的边框;
rules="cols:表示只显示垂直方向上的边框;
rules="all":则是显示所有方向上的边框,这也是默认值;
frame="void":表示不加外边框;
frame="above":表示显示上边的外边框;
frame="below":表示显示下边的外边框;
frame="lhs":表示显示左边的外边框;
frame="rls":表示显示右边的外边框;
frame="hsides":表示显示上下外边框;
frame="vsides":表示显示左右外边框;
frame="box"则表示显示所有外边框。
  明白了参数值的含义,制作本例的效果就简单了,本例完成后的源代码如下:











这是系列横单线试验
这是系列横单线试验,效果还好吧?

  用这种方法画系列单线,即快又整齐,且所用代码也很少。

  二、作系列竖单线


  本例这种效果看起来是不是有点特色,其实在制作方法上与上例没有多少区别,只是改变了rules和frame的参数值,使表格只显示垂直方向的内外边框,其它与上例相同,本例完成后的源代码是:


更上一层楼
欲穷千里目
黄河入海流
白日依山尽


登黄鹤楼



  三、系列双横线


  这是在例一的基础上再增加设定了cellspacing参数所产生的效果。
  本例采用与例一相同的方法,通过设定rules和frame参数,使表格只显示水平方向的内外边框线,并增加了设定cellspacing参数使其产生双线效果,但是

标记默认的双线颜色不一样(因它的本意是用两种颜色来产生立体效果的),所以又通过设定bordercolorlight和bordercolordark参数来改变双线的颜色,以达到双线颜色一致的目的。另外为了使表格内的文字内容上下留空,又设定了cellpadding参数,当然也可以通过设定单元格高度来达到这个目的,但那样要增加许多代码。下面介绍这几个参数的含义:
cellspacing="n":单元格间距,也就是内外边框线的间距;
cellpadding="n":单元格边距,即单元格内内容与内边框的距离;
bordercolorlight="#n":设定立体边框线中较浅部分的颜色,用颜色名称或十六进制数表示。
bordercolordark="#n":设定立体边框线中较深部分的颜色,用颜色名称或十六进制数表示。
  用本例的方法制作双横线,比用其它方法方便、快捷,所用代码也较少,当横线的数量越多,效果越明显。本例完成后的代码为:




这是在例一的基础上再增加设定了cellspacing参数所产
生的效果。

n1.表格的分隔线可以隐藏

可以隐藏横向的分隔线

可以隐藏纵向的分隔线

可以隐藏横向和纵向的分隔线


2.表格的边框不断在闪

以下方法可以令表格的边框不断在闪,很实用的
BODY区加上

style="border:5pxsolidyellow">

加入任意的物件.加入任意的物件.


加入任意的物件.加入任意的物件.


加入任意的物件.加入任意的物件.


3.表格分行下载

这个对表哥内容很大比较实用

在需要分行下载处加上

比如:

















flsdjfsdjfkdsjf
skdjfsdjfksd
flsdjfsdjfkdsjf
skdjfsdjfksd

4.几种样式不同的表格

11;top:11"height="26">

普通表格

5.正立方表格

bordercolordark="#000000"style="position:absolute;left:10;top:
49"height="26">

正立方表格


6.细表格

bgcolor="#000000"cellspacing="1"cellpadding="0"
height="22"style="position:absolute;left:11;top:86">

细表格

7.立体表格

bordercolordark="#ffffff"style="position:absolute;left:10;top:
112"height="34">

bordercolorlight="#000000"bordercolordark="#eeeeee">立体表格


8.无名表格

left:246;top:12"height="51">


无名表格  

9.表中表效果Ⅱ

absolute;left:245;top:89"height="110">

align="center">表中表效果Ⅱ frame="hsides"border="1"
bordercolorlight="#000000"bordercolordark="#ffffff"
width="100%"cellspacing="1"cellpadding="0"height="78">



10.表中表效果Ⅰ

left:10;top:120"height="138"cellspacing="1"
cellpadding="0">

border-style:groove"align="center"> #FFFFFF;border:1solid#808080">表中表效果Ⅰ
  


11.表格中边框的显示


只显示上边框
只显示下边框
只显示左、右边框
只显示上、下边框
只显示左边框
只显示右边框
不显示任何边框

 1.两种细线表格做法


  源码如下:



表格边线为1,线色为黑,行线色为白。





表格边线为0,间距为1,背景色为黑,行背景色为白。



  2.立体表格



  源码如下:



it365cn
it365cn
it365cn
it365cn


cnbruce
cnbruce
cnbruce
cnbruce


表格边线为1,间隔为0,左上为#333333,右下为#efefef,行背景色为#cccccc

  3.另类圆角表格制作


  源码如下:

原图:




























放大




























4.虚线边框表格


  源码如下:


.tb{BORDER-BOTTOM:#0000001pxdotted;BORDER-top:#0000001pxdotted;BORDER-LEFT:
#0000001pxdotted;BORDER-RIGHT:#0000001pxdotted;}



www.blueidea.com



虚线直线1

虚线直线2


5.分类型表格

  源码如下:


item
content



6.变色的单元格1,通过a:hover


  源码如下:



Blueidea
.com

CNBruce
.com

7.变色的单元格2,已经做成了CSS,注意还有透明效果

  源码如下:


.aa
{background-color:#0000ff;color:#ff0000;filter:alpha(opacity=50)}
.bb
{background-color:#3366cc;color:#ffffff}



class="bb">

cnbruce




8.变色的单元格3,通过mouse事件做.有点微软的味道


  源码如下:
bordercolor="#efefef"bgcolor="#efefef">

onMouseOver="this.bgColor='#cccccc';this.borderColor='#000033'">
Blueidea




onMouseOut="this.bgColor='#efefef';this.borderColor='#efefef'";onMouseOver="this.bgColor='#cccccc';this.borderColor='#000033'">
cnbruce



9.透明表格


cnbruce


10.表格边框显示外阴影

  源码如下:

style="filter:progid:DXImageTransform.Microsoft.Shadow
(Color=#333333,Direction=120,strength=5)">

www.cnbruce.com


11.VML代码实现的圆角表格
(1).

  源码如下:






VML




(2).

  源码如下:






ecnbrucecnbrucecnbrucecnbrucecnbrucecnbrucecnbrucecnbrucecnbrucecnbruce"/>

VML




(3).


  源码如下:






VML


转自:动态网制作指南www.knowsky.com

常用函数:

大小写变换:toLowerCase(),toUpperCase()

select操作

varsl=document.forms[0].roomName;

alert(sl.options[sl.selectedIndex].text);

thisform.room.selectedIndex==-1

document.forms[0].roomname.disabled=true;

如何用JavaScript在下拉列表中自动加入内容?

分类:

JavaScript

内容:

Ifyouwanttoaddeasycontenttoyourselectlist(dropdownlist)thisisyourtip.Simplyusethecodebelow.Itsimplytransformsyourselectlistintoafieldwhereyoucanaddyourvalue.Afterthatitwilltransformbackintoaselectlist."LongLivetheDom"

Addif(this.options[this.selectedIndex].text=='Other...')selectOther(this);totheONCHANGEeventoftheselectlistandmakesuretheselectlisthasanOther...option.Thescriptshoulddotherest.

Code

functionselectOther(list){
varinput=document.createElement("INPUT");
input.className="select";
input.type="text";
input.οnblur=function(){
varlist=this.oldNode;
list.options[list.options.length-1]=newOption(this.value,"",true);
list.options[list.options.length]=newOption("Other...");
list.selectedIndex=list.options.length-2;

this.parentNode.replaceChild(list,this);
};
input.oldNode=list.parentNode.replaceChild(input,list);
}

附件:

Select清空select.options.length=0

提交操作

如何禁止用户在Web上提交文档后利用后退功能?

分类:

JavaScript

内容:

Thiswillpreventtheuserfromresubmittingthesamedocmentmanytimes.I
havetriedmanycacheexpirationsolutionsandnothingseemstoworkproperly.
PlacethiscodeintheonLoadeventoftheformandvoila!

Code


intheonLoadeventoftheForm..
--------------------------------

if(history.forward()!=null){
self.location.reload()
}

附件:

Style操作

if(this.value="1")

{

document.forms[0].see.style.display='none'

}

if(this.value="1")

{

document.forms[0].see.style.display='inline'

}

redio操作

if(document.forms[0].watch){

alert(document.forms[0].watch.value);

if(document.forms[0].watch[0].checked)

document.forms[0].see1.disabled=true;

}

Checkbox操作

If(document.all.zxbz.checked)

document.all.zxbz.value="1";

else

document.all.zxbz.value="0";

素操作

document.getElementById

innerText

innerHTML

disabled

event.srcElement

obj.tagName

this.all('switchPoint').style.display='none'

document.all('switchPoint')[0].style.display='none'

parentNode;

childNodes;

innerText,outerText,innerHTML,outerHTML.

IE的DHTML对象提供了四个可读写的属性来动态操作页面元素的内容:innerText,outerText,innerHTML,outerHTML.

需注意两点:

1.其中innerText,outerText属性的值是作为普通文本呈现的,即使它含有HTML标签也如实反应出来;而innerHTML,outerHTML呈现的是经HTML引擎解析后文本,它可以反应属性中HTML标签的表现效果。

2.对对象的outerText,outerHTML属性赋值(即写操作)会删除该对象。

以上四个属性的赋值操作只是替换原对象的文本内容,想要在页面中指定元素相关位置新增文本内容,需采用insertAdjacentHTML和insertAdjacentText方法。形式如下:

object.insertAdjacentText(sWhere,sText)
object.insertAdjacentHTML(sWhere,sText)
其中sWhere表示插入的文本相对于html标签的位置,有如下四个预设值:

beforeBegin,afterBegin,beforeEnd,afterEnd

使用中需注意如下几点:

1.这两种方法必须在整个文档装载完成之后才能使用,否则将出错。

2.InsertAdjacentText只能插入普通文本,InsertAdjacentHTML插入html格式的文本

3.用InsertAdjacentHTML插入脚本,必须在script元素中使用defer属性,否则脚本执行将出现运行期错误

4.InsertAdjacentHTML插入html元素后,all以及其他可能的元素集合将自动更新以反应动态变化。如页面后续元素的sourceIndex属性将改变。

5.当赋予InsertHTML/outerHTML属性无效的HTML标签,该方法可能出现运行时错。如以下代码将出错:

pdiv.innerHTML="

hello

"



此外页面内容动态操作还需要注意如下一些细节:

1.只有文档BODY内显示的内容能被以上属性和方法动态改变,BODY对象的内容能被动态操作,但BODY对象本身无法被替换。

2.以上属性和方式不能操作空标签(没有内容的html标签),如input,img。

3.对于table对象而言,只有td(innerHTML/innerText)和table(outerHMTL/outerText)对象可以用某些属性来替换或插入内容;而其他table对象,如tr、tbody不能用这些属性来改变内容。

数字操作:

描述

返回由字符串转换得到的浮点数

语法

parseFloat(numstring)

numstring参数是包含浮点数的字符串。

注释

parseFloat方法返回与numstring中保存的数相等的数字表示。如果numstring的前缀不能解释为浮点数,则返回NaN(而不是数字)。

parseFloat("abc")//返回NaN。

parseFloat("1.2abc")//返回1.2。

可以用isNaN方法检测NaN。

parseInt("abc")//返回NaN.

parseInt("12abc")//返回12.

可以用isNaN方法检测NaN。

Document操作

document.body

xml操作

DOM节点类型
举例

NODE_ELEMENT
TheOffspring

NODE_ATTRIBUTE
type="band">TheOffspring

NODE_TEXT
TheOffspring

NODE_PROCESSING_INSTRUCTION


NODE_DOCUMENT_TYPE

varcontactID=parseInt(sortNode.item(currentid).parentNode.getAttribute("contactID"))+1

Xsldom.getElementsByTagName(PrimaryKey);

varPrimaryKey=node(0).getAttribute("PrimaryKey");

node.item(0).childNodes(j).nodeName

objRoot.setAttribute("orderby",tableorder);

遍历xml


txt="

Traversingthenodetree

"
document.write(txt)
setxmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
foreachxinxmlDoc.documentElement.childNodes
document.write(""&x.nodename&"")
document.write(":")
document.write(x.text)
document.write("
")
next

LoadXml(“”)加载字符串。

location操作

varpathname=window.location.pathname;

varsearchstr=window.location.search;

遍历操作

遍历xmlvbscript


txt="

Traversingthenodetree

"
document.write(txt)
setxmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
foreachxinxmlDoc.documentElement.childNodes
document.write(""&x.nodename&"")
document.write(":")
document.write(x.text)
document.write("
")
next

遍历xtree

functioncjcbl(tree1,j){

varddd=tree1;

j+="";

varxx;

for(vari=0;i<=(ddd.childNodes.length-1);i++){

if(i+1<10){

xx="00"+(i+1);

}

elseif(i+1<100){

xx="0"+(i+1);

}

else{

xx=i+1;

}

alert(document.getElementById(ddd.childNodes[i].id+"-anchor").innerText+j+xx);

cjcbl(ddd.childNodes[i],j+xx);

}

}

This语句

描述

指当前对象。

语法

this.property

说明

this关键字通常在对象的构造函数中使用,用来引用对象。在下面示例中,this指的是新创建的Car对象,并给三个属性赋值:

functionCar(color,make,model)

{

this.color=color;

this.make=make;

this.model=model;

}

对于JScript的客户版本,如果在其他所有对象的上下文之外使用this,则它指的是window对象。

Hashmap类

使用javascript模拟了一个类似Java的HashMap类

/*------------------------------------------------------------------------------

*addedbyLxcJie2004.7.16

*模拟简单HashMap类,要求key是String,value可以是任何类型

*方法列表:

*1,HashMap():构造函数

*2,put(key,value):void

*3,get(key):Object

*4,keySet():Array

*5,values():Array

*6,size():int

*7,clear():void

*8,isEmpty():boolean

*9,containsKey(key):boolean

*10,containsValue(value):boolean//如果value是Object类型或者数组类型,存在bug

*11,putAll(map):void

*12,remove(key):void

*用法:

*varmap=newJHashMap();

*map.put("one","一只小猪");

*map.put("two","两只小猪");

*map.put("three","三只小猪");

*

*print("[toString()]:"+map);

*print("[get()]:"+map.get("one"));

*print("[keySet()]:"+map.keySet());

*print("[values()]:"+map.values());

*print("[size()]:"+map.size());

*print("[isEmpty()]:"+map.isEmpty());

*print("[containsKey()]:"+map.containsKey("one"));

*print("[containsValue()]:"+map.containsValue("三只小猪"));

*

*//putAll

*varmapTemp=newJHashMap();

*mapTemp.put("four","四只小猪");

*mapTemp.put("five","五只小猪");

*map.putAll(mapTemp);

*print("[putAll()]:"+map);

*

*//remove

*map.remove("two");

*map.remove("one");

*print("[remove()]:"+map);

*

*//clear

*map.clear()

*print("[clear()]:"+map.size());

*//辅助方法

*functionprint(msg)

*{

*document.write(msg+"
");

*}

*修改履历:

-------------------------------------------------------------------------------*/

/**

*HashMap构造函数

*/

functionJHashMap()

{

this.length=0;

this.prefix="hashmap_prefix_20040716_";

}

/**

*向HashMap中添加键值对

*/

JHashMap.prototype.put=function(key,value)

{

this[this.prefix+key]=value;

this.length++;

}

/**

*从HashMap中获取value值

*/

JHashMap.prototype.get=function(key)

{

returntypeofthis[this.prefix+key]=="undefined"

?null:this[this.prefix+key];

}

/**

*从HashMap中获取所有key的集合,以数组形式返回

*/

JHashMap.prototype.keySet=function()

{

vararrKeySet=newArray();

varindex=0;

for(varstrKeyinthis)

{

if(strKey.substring(0,this.prefix.length)==this.prefix)

arrKeySet[index++]=strKey.substring(this.prefix.length);

}

returnarrKeySet.length==0?null:arrKeySet;

}

/**

*从HashMap中获取value的集合,以数组形式返回

*/

JHashMap.prototype.values=function()

{

vararrValues=newArray();

varindex=0;

for(varstrKeyinthis)

{

if(strKey.substring(0,this.prefix.length)==this.prefix)

arrValues[index++]=this[strKey];

}

returnarrValues.length==0?null:arrValues;

}

/**

*获取HashMap的value值数量

*/

JHashMap.prototype.size=function()

{

returnthis.length;

}

/**

*删除指定的值

*/

JHashMap.prototype.remove=function(key)

{

deletethis[this.prefix+key];

this.length--;

}

/**

*清空HashMap

*/

JHashMap.prototype.clear=function()

{

for(varstrKeyinthis)

{

if(strKey.substring(0,this.prefix.length)==this.prefix)

deletethis[strKey];

}

this.length=0;

}

/**

*判断HashMap是否为空

*/

JHashMap.prototype.isEmpty=function()

{

returnthis.length==0;

}

/**

*判断HashMap是否存在某个key

*/

JHashMap.prototype.containsKey=function(key)

{

for(varstrKeyinthis)

{

if(strKey==this.prefix+key)

returntrue;

}

returnfalse;

}

/**

*判断HashMap是否存在某个value

*/

JHashMap.prototype.containsValue=function(value)

{

for(varstrKeyinthis)

{

if(this[strKey]==value)

returntrue;

}

returnfalse;

}

/**

*把一个HashMap的值加入到另一个HashMap中,参数必须是HashMap

*/

JHashMap.prototype.putAll=function(map)

{

if(map==null)

return;

if(map.constructor!=JHashMap)

return;

vararrKey=map.keySet();

vararrValue=map.values();

for(variinarrKey)

this.put(arrKey[i],arrValue[i]);

}

//toString

JHashMap.prototype.toString=function()

{

varstr="";

for(varstrKeyinthis)

{

if(strKey.substring(0,this.prefix.length)==this.prefix)

str+=strKey.substring(this.prefix.length)

+":"+this[strKey]+"\r\n";

}

returnstr;

}

text操作

巧用expression来区分只读文本框和普通文本框的背景色

对于文本框,只读状态下和普通状态下,浏览器对其并没有做什么特殊的标记,表面看来,效果是一样的,这样,对用户来说,易用性并不是很高.

当然,我们可以改变只读文本框的背景颜色来加以区分,这个时候就需要程序员自己判断这个文本框是不是只读,然后再引入相应的css,无疑加大了工作量.

这里,使用expression来提供一种解决方案,只需要每个页面引入这个css即可,其它的都由程序自己判断,如下:





Css操作

body{

background-image:url(img2/main-back2.gif);

}

表单对象:

1、Text单行单列输入元素
 功能:对Text标识中的元素实施有效的控制。
 基本属性:
Name:设定提交信息时的信息名称。对应于HTML文档中的Name。
Value:用以设定出现在窗口中对应HTML文档中Value的信息。
defaultvalue:包括Text元素的默认值
 基本方法:
blur():将当前焦点移到后台。
select():加亮文字。
 主要事件:
onFocus:当Text获得焦点时,产生该事件。
OnBlur:从元素失去焦点时,产生该事件。
Onselect:当文字被加亮显示后,产生该文件。
onchange:当Text元素值改变时,产生该文件。
例:...




...

document.mytest.value="thatisaJavascript";
document.mytest.select();
document.mytest.blur();

 


2、textarea多行多列输入元素
 功能:实施对Textarea中的元素进行控制。
 基本属性
name:设定提交信息时的信息名称,对应HTML文档Textarea的Name。
Value:用以设定出现在窗口中对应HTML文档中Value的信息。
Defaultvalue:元素的默认值。
 方法:
blur():将输入焦点失去
select():将文字加亮后
 事件:
onBlur:当失去输入焦点后产生该事件
onFocus:当输入获得焦点后,产生该文件
Onchange:当文字值改变时,产生该事件
Onselect:当文字加亮后,产生该文件
 
3、Select选择元素
 功能:实施对滚动选择元素的控制。
 属性:
name:设定提交信息时的信息名称,对应文档select中的name。
Length:对应文档select中的length
options:组成多个选项的数组
selectIndex;该下标指明一个选项
select在中每一选项都含有以下属性:
Text:选项对应的文字
selected:指明当前选项是否被选中
Index:指明当前选项的位置
defaultselected:默认选项
 
 事件:
OnBlur:当select选项失去焦点时,产生该文件。
onFocas:当select获得焦点时,产生该文件。
Onchange:选项状态改变后,产生该事件。
 
4、Button按钮
 功能:实施对Button按钮的控制。
 属性:
Name:设定提交信息时的信息名称,对应文档中button的Name。
Value:用以设定出现在窗口中对应HTML文档中Value的信息。
 方法:
click()该方法类似于一个按下的按钮。
 事件:
onclick当单击button按钮时,产生该事件。
例:




...

document.elements[0].value="mytest";//通过元素访问

document.testcallvalue="mytest";//通过名字访问

.....

 
5、checkbox检查框
 功能:实施对一个具有复选框中元素的控制。
 属性:
name:设定提交信息时的信息名称。
Value:用以设定出现在窗口中对应HTML文档中Value的信息。
Checked:该属性指明框的状态true/false.
defauitchecked:默认状态
 方法:
click()该方法使得框的某一个项被选中。
 事件:
onclick:当框的选被选中时,产生该事件。 

6、radio无线按钮
 功能:实施对一个具单选功能的无线按钮控制。
 属性:
name:设定提交信息时的信息名称,对应HTML文档中的radio的name相同
value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中的radio的name。
length:单选按钮中的按钮数目。
defalechecked:默认按钮。
checked:指明选中还是没有选中。
index:选中的按钮的位置。
 方法:
chick():选定一个按钮。
 事件:
onclick:单击按钮时,产生该事件。
 
7、hidden:隐藏
 功能:实施对一个具有不显示文字并能输入字符的区域元素的控制。
 属性:
name:设定提交信息时的信息名称,对应HTML文档的hidden中的Name。
Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档hidden中的value。
defaleitvalue:默认值
 
8、Password口令
 功能:实施对具有口令输入的元素的控制。
 属性:
Name:设定提交信息时的信息名称,对应HTML文档中password中的name。
Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中password中的Value。
defaultvalu:默认值
 方法
select():加亮输入口令域。
blur():使这丢失passward输入焦点。
focus():获得password输入焦点。
 
9、submit提交元素
 功能:实施对一个具有提交功能按钮的控制。
 属性:
name:设定提交信息时的信息名称,对应HTML文档中submit。
Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中value。
 方法
click()相当于按下submit按钮。
 事件:
onclick()当按下该按钮时,产生该事件。

页面无法保存

Iframe操作

Httphead操作

""

""

""

""

技巧:

1.οncοntextmenu=\"window.event.returnvalue=false\"将彻底屏蔽鼠标右键
no可用于Table

2.取消选取、防止复制

3.οnpaste=\"returnfalse\"不准粘贴

4.οncοpy=\"returnfalse;\"oncut=\"returnfalse;\"防止复制

5.IE地址栏前换成自己的图标

6.可以在收藏夹中显示出你的图标

7.关闭输入法

8.永远都会带着框架


9.防止被人frame


10.网页将不能被另存为


11.查看网页源代码
οnclick=\"window.location=\'view-source:\'+http://www.csdn.net/&;#39;\">

12.怎样通过asp的手段来检查来访者是否用了代理
<%ifRequest.ServerVariables(\"HTTP_X_FORWARDED_FOR\")<>\"\"then
response.write\"您通过了代理服务器,\"&_
\"真实的IP\"&Request.ServerVariables(\"HTTP_X_FORWARDED_FOR\")
endif
%>

13.取得控件的绝对位置

//javascript

functiongetIE(e){
vart=e.offsetTop;
varl=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert(\"top=\"+t+\"\\nleft=\"+l);
}


//VBScript


14.光标是停在文本框文字的最后

functioncc()
{
vare=event.srcElement;
varr=e.createTextRange();
r.moveStart(\'character\',e.value.length);
r.collapse(true);
r.select();
}



15.判断上一页的来源
asp:
request.servervariables(\"HTTP_REFERER\")

javascript:
document.referrer

16.最小化、最大化、关闭窗口







最小化οnclick=hh1.Click()>
最大化οnclick=hh2.Click()>
关闭οnclick=hh3.Click()>
本例适用于IE

17.
<%
\'定义数据库连接的一些常量
ConstadOpenForwardOnly=0\'游标只向前浏览记录,不支持分页、RecordsetBookMark
ConstadOpenKeyset=1\'键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、RecordsetBookMark
ConstadOpenDynamic=2\'动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)
ConstadOpenStatic=3\'静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

ConstadLockReadOnly=1\'锁定类型,默认的,只读,不能作任何修改
ConstadLockPessimistic=2\'当编辑时立即锁定记录,最安全的方式
ConstadLockOptimistic=3\'只有在调用Update方法时才锁定记录集,而在此前的其他*作仍可对当前记录进行更改、插入和删除等
ConstadLockBatchOptimistic=4\'当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的

ConstadCmdText=&H0001
ConstadCmdTable=&H0002
%>

18.网页不会被缓存
HTM网页



或者
ASP网页
Response.Expires=-1
Response.ExpiresAbsolute=Now()-1
Response.cachecontrol=\"no-cache\"
PHP网页
header(\"Expires:Mon,26Jul199705:00:00GMT\");
header(\"Cache-Control:no-cache,must-revalidate\");
header(\"Pragma:no-cache\");


19.检查一段字符串是否全由数字组成


20.获得一个窗口的大小
document.body.clientWidth,document.body.clientHeight

21.怎么判断是否是字符
if(/[^\\x00-\\xff]/g.test(s))alert(\"含有汉字\");
elsealert(\"全是字符\");

22.TEXTAREA自适应文字行数的多少

htmltoexecl

Response.ContentType="application/vnd.ms-excel"

application/vnd.ms-powerpoint,application/vnd.ms-excel,application/msword

js动态操作html

test

functionadd(tableId){

alert('nihao');

varobjTable=document.getElementById(tableId);

alert(objTable);

varobjRow=objTable.insertRow();

varobjCell=objRow.insertCell();

objCell.classname="code";

objCell.borderColor="#cccccc";

objCell.bgColor="#eff3f8";

objCell.innerHTML=document.getElementById("ddd").innerHTML;

}//end_js


你可能感兴趣的:(网页编程的学习笔记)