jiavascript 精华收集

1. oncontextmenu="window.event.returnvalue=false"   将彻底屏蔽鼠标右键
  <table border oncontextmenu=return(false)><td>no</table> 可用于Table
2.
 <body onselectstart="return false">        取消选取、防止复制
3.
 onpaste="return false"                    不准粘贴
4.
 oncopy="return false;" oncut="return false;"         防止复制
5.
 <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
6.
 <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
7.
 <input style="ime-mode:disabled">             关闭输入法
8.
 永远都会带着框架
<script language="javascript"><!--
 if (window == top)top.location.href = "index.htm"; file://index.htm为框架网页
// --></script>
9.
 防止被人frame
<SCRIPT LANGUAGE=javascript><!--
 if (top.location != self.location)top.location=self.location;
// --></SCRIPT>
10. <noscript><iframe src=*.html></iframe></noscript>
  网页将不能被另存为
11. <input type=button value=
查看网页源代码
onclick="window.location = 'view-source:'+ 'http://www.csdn.net/&#39;">
12.
怎样通过asp的手段来检查来访者是否用了代理
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR"<>"" then
response.write "<font color=#FF0000>
您通过了代理服务器,"& _
"
真实的IP"&Request.ServerVariables("HTTP_X_FORWARDED_FOR"
end if
%>
13.
取得控件的绝对位置
file://javascript
<script language="javascript">
function getIE(e){
 var t=e.offsetTop;
 var l=e.offsetLeft;
 while(e=e.offsetParent){
  t+=e.offsetTop;
  l+=e.offsetLeft;
  }
 alert("top="+t+""nleft="+l);
 }
</script>
file://VBScript
<script language="VBScript"><!--
function getIE()
 dim t,l,a,b
 set a=document.all.img1
 t=document.all.img1.offsetTop
 l=document.all.img1.offsetLeft
 while a.tagName<>"BODY"
  set a = a.offsetParent
  t=t+a.offsetTop
  l=l+a.offsetLeft
 wend
 msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>
14.
光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
 var e = event.srcElement;
 var r =e.createTextRange();
 r.moveStart('character',e.value.length);
 r.collapse(true);
 r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">
15.
判断上一页的来源
asp:
request.servervariables("HTTP_REFERER"
javascript:
document.referrer
16.
最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="Close"></OBJECT>
<input type=button value=
最小化 onclick=hh1.Click()>
<input type=button value=
最大化 onclick=hh2.Click()>
<input type=button value=
关闭 onclick=hh3.Click()>
本例适用于IE

17.
<%
'
定义数据库连接的一些常量
Const adOpenForwardOnly
   = 0 '游标只向前浏览记录,不支持分页、

Recordset
BookMark
Const adOpenKeyset
     = 1 '键集游标,其他用户对记录说做的修改

将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支

持分页、RecordsetBookMark
Const adOpenDynamic
     = 2 '动态游标功能最强,但耗资源也最多。

用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功

能浏览(ACCESS不支持)
Const adOpenStatic
     = 3 '静态游标,只是数据的一个快照,用户对

记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向

后移动
Const adLockReadOnly
    = 1 '锁定类型,默认的,只读,不能作任何

修改
Const adLockPessimistic
   = 2 '当编辑时立即锁定记录,最安全的方式
Const adLockOptimistic
   = 3 '只有在调用Update方法时才锁定记录集,

而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const adLockBatchOptimistic = 4 '
当编辑时记录不会被锁定,而更改、插入和

删除是在批处理方式下完成的
Const adCmdText
 = &H0001
Const adCmdTable = &H0002
%>
18.
网页不会被缓存
HTM
网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP
网页
 Response.Expires = -1
 Response.ExpiresAbsolute = Now() - 1
 Response.cachecontrol = "no-cache"
PHP
网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT";
header("Cache-Control: no-cache, must-revalidate";
header("Pragma: no-cache";

 

19. 让网页适合任何分辨率
  <script language="javascript">
function diff(x){
ie4=(document.all)?true:false
if (ie4){
block=x.style;
}
var a=screen.width
switch (a){
case 1024:
block.left=""+(parseInt(block.left)+112);
break;
case 1152:
block.left=""+(parseInt(block.left)+176);
break;
case 1280:
block.left=""+(parseInt(block.left)+240);
break;
}
}
</SCRIPT>
将上述代码加入BODY之间

 

20.地址栏地址前显出小图标
  有些站点,访问时会在地址栏地址前显出小图标,添加到收藏夹后也在收

藏栏中显示图标,这样很好的与其它站点有了区别。

 


要达到这个效果,先需做出这个图标文件,图像为16*16像素,不要超过16色。

文件格式为ico,然后上传至你的网站。 最好是favicon.ico

 


然后,在需要的页面中,加上以下html语句到文件的<head></head>之间(假设

以上ico文件的地址为http://www.wfdoc.com/favicon.ico)。
那么输入<link REL="SHORTCUT ICON" href="http://www.wfdoc.com/favicon.ico">

 


**********************************************************************

 1. oncontextmenu="window.event.returnvalue=false"
将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table>
可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

 

3. onpaste="return false" 不准粘贴

 

4. oncopy="return false;" oncut="return false;" 防止复制

 

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

 

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标

 

7. <input style="ime-mode:disabled"> 关闭输入法

 

8. 永远都会带着框架
<script language="javascript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm
为框架网页
// --></script>

 

9. 防止被人frame
<SCRIPT LANGUAGE=javascript><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

 

10. <noscript><iframe src=*.html></iframe></noscript> 网页将不能被另存为

 

11. <input type=button value=查看网页源代码
onclick="window.location = 'view-source:'+ 'http://www.csdn.net/&#39;">

 

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

 

13. 取得控件的绝对位置

 

//javascript
<script language="javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+""nleft="+l);
}
</script>

 

//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"
得到控件的位置"
end function
--></script>

 

14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" onfocus="cc()">

 

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

 

javascript:
document.referrer

16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="Close"></OBJECT>

 

<input type=button value=最小化 onclick=hh1.Click()>
<input type=button value=
最大化 onclick=hh2.Click()>
<input type=button value=
关闭 onclick=hh3.Click()>
本例适用于IE

 

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

 

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

 

Const adCmdText = &H0001
Const adCmdTable = &H0002
%>

 

18. 网页不会被缓存
HTM
网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP
网页
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
PHP
网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

 


19.
检查一段字符串是否全由数字组成
<script language="javascript"><!--
function checkNum(str){return str.match(/"D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

 

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

 

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

 

22.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

 

23. 日期减去天数等于第二个日期
<script language=javascript>
function cc(dd,dadd)
{
//
可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "
" + (a.getMonth() + 1) + "" + a.getDate() + "")
}
cc("12/23/2002",2)
</script>

24. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" onclick="checkme()">
</BODY></HTML>

 

25.获得本页urlrequest.servervariables("")集合
Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD>
<TD><B>value</B></TD></TR>"
for each ob in Request.ServerVariables
Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write "</TABLE>"

 

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键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">

 

28. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=javascript>
tim=1
setInterval("tim++",100)
b=1

 

var autourl=new Array()
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"

 

function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=
测试中……> =<input type=text name=url"
+i+" size=40> =
<input type=button value=GO onclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<input type=submit value=
刷新></form>")
}
butt()
function auto(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++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl[i]+"/"+Math.random()+
" width=1 height=1 onerror=auto('http://";+autourl[i]+"')>")}
run()</script>

 


29.
各种样式的光标
auto
:标准光标
default
:标准箭头
hand
:手形光标
wait
:等待光标
text
I形光标
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等格式
<%
function dl(f,n)
on error resume next

 

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

 

call dl("012922501.gif","t1.gif")
%>

 


19.
检查一段字符串是否全由数字组成
<script language="javascript"><!--
function checkNum(str){return !/"D/.test(str)}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

 

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("
含有汉字");
else alert("
全是字符");

 

22.TEXTAREA自适应文字行数的多少
IE 5.5+
可以用 overflow-y:visible
<textarea rows=1 name=s1 cols=27 style="overflow-y:visible">
</textarea>

 

23. 日期减去天数等于第二个日期
<script language=javascript>
function cc(dd,dadd)
{
//
可以加上错误处理
var d = new Date(dd.replace("-","/"))
d.setDate(d.getDate()+dadd)
alert(d.getFullYear() + "
" + (d.getMonth() + 1) + "" + d.getDate() + "")
}
cc("2002-2-28",2)
</script>

B/S开发中经常用到的JavaScript技术

一、验证类
1
、数字验证内
  1.1
整数
  1.2
大于0的整数 (用于传来的ID的验证)
  1.3
负整数的验证
  1.4
整数不能大于iMax
  1.5
整数不能小于iMin
2
、时间类
  2.1
短时间,形如 (13:04:06)
  2.2
短日期,形如 (2003-12-05)
  2.3
长时间,形如 (2003-12-05 13:04:06)
  2.4
只有年和月。形如(2003-05,或者2003-5)
  2.5
只有小时和分钟,形如(12:03)
3
、表单类
  3.1
所有的表单的值都不能为空
  3.2
多行文本框的值不能为空。
  3.3
多行文本框的值不能超过sMaxStrleng
  3.4
多行文本框的值不能少于sMixStrleng
  3.5
判断单选框是否选择。
  3.6
判断复选框是否选择.
  3.7
复选框的全选,多选,全不选,反选
  3.8
文件上传过程中判断文件类型
4
、字符类
  4.1
判断字符全部由a-Z或者是A-Z的字字母组成
  4.2
判断字符由字母和数字组成。
  4.3
判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
  4.4
字符串替换函数.Replace();
5
、浏览器类
  5.1
判断浏览器的类型
  5.2
判断ie的版本
  5.3
判断客户端的分辨率
 
6
、结合类
  6.1 email
的判断。
  6.2
手机号码的验证
  6.3
身份证的验证
 

二、功能类

1、时间与相关控件类
  1.1
日历
  1.2
时间控件
  1.3
万年历
  1.4
显示动态显示时钟效果(文本,如OA中时间)
  1.5
显示动态显示时钟效果 (图像,像手表)
2
、表单类
  2.1
自动生成表单
  2.2
动态添加,修改,删除下拉框中的元素
  2.3
可以输入内容的下拉框
  2.4
多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送)
 
3
、打印类
  3.1
打印控件
4
、事件类
  4.1
屏蔽右键
  4.2
屏蔽所有功能键
  4.3 -->
<-- F5 F11,F9,F1
  4.4
屏蔽组合键ctrl+N
5
、网页设计类
  5.1
连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现)
  5.2 html
编辑控件类
  5.3
颜色选取框控件
  5.4
下拉菜单
  5.5
两层或多层次的下拉菜单
  5.6
仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目)
  5.7
状态栏,title栏的动态效果(例子很多,可以研究一下)
  5.8
双击后,网页自动滚屏
6
、树型结构。
  6.1 asp+SQL

  6.2 asp+xml+sql

  6.3 java+sql
或者java+sql+xml
7
、无边框效果的制作
8
、连动下拉框技术
9
、文本排序

一、验证类
1
、数字验证内
  1.1
整数
      /^(-|"+)?"d+$/.test(str)
  1.2
大于0的整数 (用于传来的ID的验证)
      /^"d+$/.test(str)
  1.3
负整数的验证
      /^-"d+$/.test(str)
2
、时间类
  2.1
短时间,形如 (13:04:06)
      function isTime(str)
      {
        var a = str.match(/^("d{1,2})(:)?("d{1,2})"2("d{1,2})$/);
        if (a == null) {alert('
输入的参数不是时间格式'); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("
时间格式不对");
          return false
        }
        return true;
      }
  2.2
短日期,形如 (2003-12-05)
      function strDateTime(str)
      {
         var r = str.match(/^("d{1,4})(-|"/)("d{1,2})"2("d{1,2})$/);
         if(r==null)return false;
         var d= new Date(r[1], r[3]-1, r[4]);
         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
      }
  2.3
长时间,形如 (2003-12-05 13:04:06)
      function strDateTime(str)
      {
        var reg = /^("d{1,4})(-|"/)("d{1,2})"2("d{1,2}) ("d{1,2}):("d{1,2}):("d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
      }
  2.4
只有年和月。形如(2003-05,或者2003-5)
  2.5
只有小时和分钟,形如(12:03)
3
、表单类
  3.1
所有的表单的值都不能为空
      <input onblur="if(this.value.replace(/^"s+|"s+$/g,'')=='')alert('
不能为空!')">
  3.2
多行文本框的值不能为空。
  3.3
多行文本框的值不能超过sMaxStrleng
  3.4
多行文本框的值不能少于sMixStrleng
  3.5
判断单选框是否选择。
  3.6
判断复选框是否选择.
  3.7
复选框的全选,多选,全不选,反选
  3.8
文件上传过程中判断文件类型
4
、字符类
  4.1
判断字符全部由a-Z或者是A-Z的字字母组成
      <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('
有错')">
  4.2
判断字符由字母和数字组成。
      <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('
有错')">
  4.3
判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
      /^([a-zA-z_]{1})(["w]*)$/g.test(str)
  4.4
字符串替换函数.Replace();
5
、浏览器类
  5.1
判断浏览器的类型
      window.navigator.appName
  5.2
判断ie的版本
      window.navigator.appVersion
  5.3
判断客户端的分辨率
      window.screen.height;  window.screen.width;
 
6
、结合类
  6.1 email
的判断。
      function ismail(mail)
      {
        return(new RegExp(/^"w+((-"w+)|("."w+))*"@[A-Za-z0-9]+((".|-)[A-Za-z0-9]+)*".[A-Za-z0-9]+$/).test(mail));
      }
  6.2
手机号码的验证
  6.3
身份证的验证
      function isIdCardNo(num)
      {
        if (isNaN(num)) {alert("
输入的不是数字!"); return false;}
        var len = num.length, re;
        if (len == 15)
          re = new RegExp(/^("d{6})()?("d{2})("d{2})("d{2})("d{3})$/);
        else if (len == 18)
          re = new RegExp(/^("d{6})()?("d{4})("d{2})("d{2})("d{3})("d)$/);
        else {alert("
输入的数字位数不对!"); return false;}
        var a = num.match(re);
        if (a != null)
        {
          if (len==15)
          {
            var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          else
          {
            var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
            var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
          }
          if (!B) {alert("
输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
        }
        return true;
      }

3.7 复选框的全选,多选,全不选,反选
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">
全选<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>


<input type=checkbox name=All2 onclick="checkAll('mm2')">
全选<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>

</form>

<SCRIPT LANGUAGE="JavaScript">
function checkAll(str)
{
  var a = document.getElementsByName(str);
  var n = a.length;
  for (var i=0; i<n; i++)
  a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
  var e = window.event.srcElement;
  var all = eval("document.hrong."+ str);
  if (e.checked)
  {
    var a = document.getElementsByName(e.name);
    all.checked = true;
    for (var i=0; i<a.length; i++)
    {
      if (!a[i].checked){ all.checked = false; break;}
    }
  }
  else all.checked = false;
}
</SCRIPT>

3.8 文件上传过程中判断文件类型
<input type=file onchange="alert(this.value.match(/^(.*)(".)(.{1,8})$/)[3])">

画图:
<OBJECT
id=S
style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px"
height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>

写注册表:
<SCRIPT>
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite ("HKCU""Software""ACME""FortuneTeller""", 1, "REG_BINARY");
WshShell.RegWrite ("HKCU""Software""ACME""FortuneTeller""MindReader", "Goocher!", "REG_SZ");
var bKey =    WshShell.RegRead ("HKCU""Software""ACME""FortuneTeller""");
WScript.Echo (WshShell.RegRead ("HKCU""Software""ACME""FortuneTeller""MindReader"));
WshShell.RegDelete ("HKCU""Software""ACME""FortuneTeller""MindReader");
WshShell.RegDelete ("HKCU""Software""ACME""FortuneTeller""");
WshShell.RegDelete ("HKCU""Software""ACME""");
</SCRIPT>

TABLAE相关(客户端动态增加行列)
<HTML>
<SCRIPT LANGUAGE="JScript">
function numberCells() {
    var count=0;
    for (i=0; i < document.all.mytable.rows.length; i++) {
        for (j=0; j < document.all.mytable.rows(i).cells.length; j++) {
            document.all.mytable.rows(i).cells(j).innerText = count;
            count++;
        }
    }
}
</SCRIPT>
<BODY onload="numberCells()">
<TABLE id=mytable border=1>
<TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH><TH>&nbsp;</TH></TR>
<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
<TR><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD><TD>&nbsp;</TD></TR>
</TABLE>
</BODY>
</HTML>

1.身份证严格验证:

<script>
var aCity={11:"
北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",71:"台湾",81:"香港",82:"澳门",91:"国外"}
 
function cidInfo(sId){
 var iSum=0
 var info=""
 if(!/^"d{17}("d|x)$/i.test(sId))return false;
 sId=sId.replace(/x$/i,"a");
 if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:
非法地区";
 sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
 var d=new Date(sBirthday.replace(/-/g,"/"))
 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:
非法生日";
 for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
 if(iSum%11!=1)return "Error:
非法证号";
 return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"
":"")
}

document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>

2.验证IP地址
<SCRIPT LANGUAGE="JavaScript">
function isip(s){
 var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
 var re=s.split(".")
 return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

var s="202.197.78.129";
alert(isip(s))
</SCRIPT>

 

3.加sp1后还能用的无边框窗口!!
<HTML XMLNS:IE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<IE:Download ID="include" STYLE="behavior:url(#default#download)" />
<title>Chromeless Window</title>

<SCRIPT LANGUAGE="JScript">
/*--- Special Thanks For andot ---*/

/*
 This following code are designed and writen by Windy_sk <[email protected]>
 You can use it freely, but u must held all the copyright items!
*/

/*--- Thanks For andot Again ---*/

var CW_width = 400;
var CW_height = 300;
var CW_top = 100;
var CW_left = 100;
var CW_url = "/";
var New_CW = window.createPopup();
var CW_Body = New_CW.document.body;
var content = "";
var CSStext = "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderStyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderStyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";

//Build Window
include.startDownload(CW_url, function(source){content=source});

function insert_content(){
 var temp = "";
 CW_Body.style.overflow  = "hidden";
 CW_Body.style.backgroundColor = "white";
 CW_Body.style.border  =  "solid black 1px";
 content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>");
 temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>";
 temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick=""Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();"" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>";
 temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>";
 temp += "<td style='color:#ffffff;padding-right:5px;' align=right>";
 temp += "<span id=Help  onclick=""alert('Chromeless Window For IE6 SP1  -  Ver 1.0""n""nCode By Windy_sk""n""nSpecial Thanks For andot')"" style="""+CSStext+"font-family:System;padding-right:2px;"">?</span>";
 temp += "<span id=Min   onclick='parent.New_CW.hide();parent.blur()' style="""+CSStext+"font-family:Webdings;"" title='Minimum'>0</span>";
 temp += "<span id=Max   onclick=""this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();"" style="""+CSStext+"font-family:Webdings;"" title='Maximum'>1</span>";
 temp += "<span id=Close onclick='parent.opener=null;parent.close()' style="""+CSStext+"font-family:System;padding-right:2px;"" title='Close'>x</span>";
 temp += "</td></tr><tr><td colspan=2>";
 temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>";
 temp += content;
 temp += "</div>";
 temp += "</td></tr></table>";
 CW_Body.innerHTML = temp;
}

setTimeout("insert_content()",1000);

var if_max = true;
function show_CW(){
 window.moveTo(10000, 10000);
 if(if_max){
  New_CW.show(CW_top, CW_left, CW_width, CW_height);
  if(typeof(New_CW.document.all.include)!="undefined"){
   New_CW.document.all.include.style.width = CW_width;
   New_CW.document.all.Max.innerText = "1";
  }
  
 }else{
  New_CW.show(0, 0, screen.width, screen.height);
  New_CW.document.all.include.style.width = screen.width;
 }
}

window.onfocus  = show_CW;
window.onresize = show_CW;

// Move Window
var drag_x,drag_y,draging=false

function drag_move(e){
 if (draging){
  New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);
  return false;
 }
}

function drag_down(e){
 if(e.button==2)return;
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return;
 drag_x=e.clientX;
 drag_y=e.clientY;
 draging=true;
 e.srcElement.setCapture();
}

function drag_up(e){
 draging=false;
 e.srcElement.releaseCapture();
 if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return;
 CW_top  = e.screenX-drag_x;
 CW_left = e.screenY-drag_y;
}

</SCRIPT>
</HTML>

电话号码的验证

要求:
  (1)电话号码由数字、"("")""-"构成
  (2)电话号码为38
  (3)如果电话号码中包含有区号,那么区号为三位或四位
  (4)区号用"("")""-"和其他部分隔开
  (5)移动电话号码为1112位,如果为12,那么第一位为0
  (6)11位移动电话号码的第一位和第二位为"13"
  (7)12位移动电话号码的第二位和第三位为"13"
  根据这几条规则,可以与出以下正则表达式:
  (^[0-9]{3,4}"-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^"([0-9]{3,4}")[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)


<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}"-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^"([0-9]{3,4}")[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">

具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。
function numbersonly(field,event){
 var key,keychar;
 if(window.event){
  key = window.event.keyCode;
 }
 else if (event){
  key = event.which;
 }
 else{
  return true
 }
 keychar = String.fromCharCode(key);
 if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
  return true;
 }
 else if(("0123456789.").indexOf(keychar)>-1){
  window.status = "";
  return true;
 }
 else {
  window.status = "Field excepts numbers only";
  return false;
 }
}

验证ip

str=document.RegExpDemo.txtIP.value;
if(/^("d{1,3})".("d{1,3})".("d{1,3})".("d{1,3})$/.test(str)==false)
{
 window.alert('
错误的IP地址格式');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
 window.alert('
错误的IP地址');
 document.RegExpDemo.txtIP.select();
 document.RegExpDemo.txtIP.focus();
 return;
}
//
剔除   010.020.020.03 前面 0
var str=str.replace(/0("d)/g,"$1");
str=str.replace(/0("d)/g,"$1");
window.alert(str);

//一下是取数据的类
//Obj
参数指定数据的来源(限定Table),默认第一行为字段名称行
//GetTableData
类提供MoveNext方法,参数是表的行向上或向下移动的位数,正数向下移动,负数向上.
//GetFieldData
方法获得指定的列名的数据
//Sort_desc
方法对指定的列按降序排列
//Sort_asc
方法对指定的列按升序排列
//GetData
方法返回字段值为特定值的数据数组,提供数据,可以在外部进行其他处理
//Delete
方法删除当前记录,数组减少一行
//
初始化,Obj:table的名字,Leftlen:左面多余数据长度,Rightlen:右面多余数据长度,
function GetTableData(Obj,LeftLen,RightLen){
var MyObj=document.all(Obj);
var iRow=MyObj.rows.length;
var iLen=MyObj.rows[0].cells.length;
var i,j;

TableData=new Array();
  for (i=0;i< iRow;i++){
   TableData[i]=new Array();
   for (j=0;j<iLen;j++){
   TableStr=MyObj.rows(i).cells(j).innerText;
   TableStr=TableStr.substring(LeftLen, TableStr.length-RightLen).Trim();
   TableStr=TableStr.replace(/ /gi,"").replace(/"r"n/ig,"");
   TableData[i][j]=TableStr;
   }
   }
 
  this.TableData=TableData;
  this.cols=this.TableData[0].length;
  this.rows=this.TableData.length;
  this.rowindex=0;
}


function movenext(Step){
if (this.rowindex>=this.rows){
return
}

if (Step=="" || typeof(Step)=="undefined") {
 if (this.rowindex<this.rows-1)
 this.rowindex++;
 return;

}
 else{
  if (this.rowindex + Step<=this.rows-1 && this.rowindex + Step>=0 ){
  this.rowindex=this.rowindex + Step;
  }
  else
  {
  if (this.rowindex + Step<0){
   this.rowindex= 0;
   return;
   }
  if (this.rowindex + Step>this.rows-1){
   this.rowindex= this.rows-1;
   return;
   }
  }
 }
}


function getfielddata(Field){
var colindex=-1;
var i=0;
 if (typeof(Field) == "number"){
   colindex=Field;
  }
 else
 {
 for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
   if (this.TableData[0][i]==Field){
   colindex=i;
   break;
   }  
  }
 }
  if (colindex!=-1) {
  return this.TableData[this.rowindex][colindex];
  }

}

 

function sort_desc(){//降序
 var colindex=-1;
 var highindex=-1;
 desc_array=new Array();
 var i,j;
for (n=0; n<arguments.length; n++){
 Field=arguments[arguments.length-1-n];
 for (i=0;i<this.cols;i++){
  if (this.TableData[0][i]==Field){
  colindex=i;
  break;
  }  
 }
   if ( colindex==-1 )
  return;
   else
  {
  desc_array[0]=this.TableData[0];
  for(i=1;i<this.rows;i++){
  desc_array[i]=this.TableData[1];
  highindex=1;
   for(j=1;j<this.TableData.length;j++){
      if  (desc_array[i][colindex]<this.TableData[j][colindex]){ 
      desc_array[i]=this.TableData[j];  
      highindex=j;
    }
    
   }
     if (highindex!=-1)
     this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));                     
  }
 }


 this.TableData=desc_array;
}
 return;
}

 

function sort_asc(){//升序
 var colindex=-1;
 var highindex=-1;
 var i,j;
for (n=0; n<arguments.length; n++){
   asc_array=new Array();
   Field=arguments[arguments.length-1-n];
   for (i=0;i<this.cols;i++){
    if (this.TableData[0][i]==Field){
    colindex=i;
    break;
    }  
   }
   if ( colindex==-1 )
     return;
   else
     {
     asc_array[0]=this.TableData[0];
     for(i=1;i<this.rows;i++){
     asc_array[i]=this.TableData[1];
     highindex=1;
      for(j=1;j<this.TableData.length;j++){//
找出最小的列值
         if  (asc_array[i][colindex]>this.TableData[j][colindex]){ 
         asc_array[i]=this.TableData[j];  
         highindex=j;
          
        }
          
       }
         if (highindex!=-1)
         this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));                     
         
      }
     }


    this.TableData=asc_array;
 }
 return;
}

function getData(Field,FieldValue){
var colindex=-1;
var i,j;

GetData=new Array();
  if (typeof(Field)=="undefined" || typeof(FieldValue)=="undefined" ){
  return this.TableData;
  }
  
   for(j=0;j<this.cols;j++){
      if  (this.TableData[0][j]==Field){
     colindex=j;
     }
   }
   if (colindex!=-1){
   
   for(i=1;i<this.rows;i++){
      if  (this.TableData[i][colindex]==FieldValue){
     GetData[i]=new Array();
     GetData[i]=this.TableData[i]; 
     }
   }
   }
   return GetData;
}
function DeletE(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));                     
this.rows=this.TableData.length;
return;
}
function updateField(Field,FieldValue){
var colindex=-1;
var i=0;
 if (typeof(Field) == "number"){
   colindex=Field;
  }
 else
 {
 for (i=0;i<this.cols && this.rowindex<this.rows ;i++){
   if (this.TableData[0][i]==Field){
   colindex=i;
   break;
   }  
  }
 }
 if (colindex!=-1) {
  this.TableData[this.rowindex][colindex]=FieldValue;
  }


}
function movefirst(){
this.rowindex=0;
}
function movelast(){
this.rowindex=this.rows-1;
}
function String.prototype.Trim() {return this.replace(/(^"s*)|("s*$)/g,"");}
GetTableData.prototype.MoveNext = movenext;
GetTableData.prototype.GetFieldData = getfielddata;
GetTableData.prototype.Sort_asc = sort_asc;
GetTableData.prototype.Sort_desc = sort_desc;
GetTableData.prototype.GetData = getData;
GetTableData.prototype.Delete = DeletE;
GetTableData.prototype.UpdateField = updateField;
GetTableData.prototype.MoveFirst = movefirst;

具体的例子:http://202.119.73.208/NetEAn/com/test/jsprint.htm

在每个文本框的onblur事件中调用校验代码,并且每个文本框中onKeyDown事件中写一个entertab函数

//回车键换为tab
function enterToTab()
{
    if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
       && event.keyCode == 13)
    {
        event.keyCode = 9;
    }
}

有时候还需要自由编辑表格---
给大家一个自由编辑表格的小例子,写的有点乱,呵呵:

//===============================start================================


<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<TITLE>
测试修改表格</TITLE>
<STYLE>
/*
提示层的样式*/
div
{
  BORDER-RIGHT: #80c144 1px solid;
  BORDER-TOP: #80c144 1px solid;
  VISIBILITY: hidden;
  BORDER-LEFT: #80c144 1px solid;
  CURSOR: default;
  LINE-HEIGHT: 20px;
  BORDER-BOTTOM: #80c144 1px solid;
  FONT-FAMILY:
宋体;
  font-size:12px;
  POSITION: absolute;
  BACKGROUND-COLOR: #f6f6f6;
  TOP:30px;
  LEFT:30px;
}
/*tr
的样式*/
tr
{
    font-family: "
宋体";
    color: #000000;
    background-color: #C1DBF5;
    font-size: 12px
}
/*table
脚注样式*/
.TrFoot
{
    FONT-SIZE: 12px;
    font-family:"
宋体", "Verdana", "Arial";
    BACKGROUND-COLOR: #6699CC;
    COLOR:#FFFFFF;
    height: 25;
}
/*trhead
属性*/
.TrHead
{
    FONT-SIZE: 13px;
    font-family:"
宋体", "Verdana", "Arial";
    BACKGROUND-COLOR: #77AADD;
    COLOR:#FFFFFF;
    height: 25;
}
/*
文本框样式*/
INPUT
{
    BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
    BORDER-RIGHT: 1px solid;
    BORDER-TOP: 1px solid;
    BORDER-LEFT: 1px solid;
    BORDER-BOTTOM: 1px solid;
    FONT-SIZE: 12px;
    FONT-FAMILY: "
宋体","Verdana";
    color: #000000;
    BACKGROUND-COLOR: #E9EFF5;
}
/*button
样式*/
button
{
    BORDER-COLOR: #AACEF7 #AACEF7 #AACEF7 #AACEF7;
    BACKGROUND-COLOR: #D5E4F3;
    CURSOR: hand;
    FONT-SIZE:12px;
    BORDER-RIGHT: 1px solid;
    BORDER-TOP: 1px solid;
    BORDER-LEFT: 1px solid;
    BORDER-BOTTOM: 1px solid;
    COLOR: #000000;
}
</STYLE>
</HEAD>
<BODY>
<SCRIPT language = "JavaScript">
<!--
全局变量
//
标志位,值为false代表未打开一个编辑框,值为true为已经打开一个编辑框开始编辑
var editer_table_cell_tag = false;
//
开启编辑功能标志,值为true时为允许编辑
var run_edit_flag = false;
//-->
</SCRIPT>

<SCRIPT language = "JavaScript">
<!--
/**
 *
编辑表格函数
 *
单击某个单元格可以对里面的内容进行自由编辑
 * @para tableID
为要编辑的tableid
 * @para noEdiID
为不要编辑的tdID,比如说table的标题
 *
可以写为<TD id="no_editer">自由编辑表格</TD>
 *
此时该td不可编辑
 */
function editerTableCell(tableId,noEdiId)
{
 var tdObject = event.srcElement;
 var tObject = ((tdObject.parentNode).parentNode).parentNode;
 if(tObject.id == tableId &&tdObject.id != noEdiId&&editer_table_cell_tag == false && run_edit_flag == true)
 {
  tdObject.innerHTML = "<input type=text id=edit_table_txt name=edit_table_txt value="+tdObject.innerText+" size='15' onKeyDown='enterToTab()'>  <input type=button value='
确定 ' onclick='certainEdit()'>";
  edit_table_txt.focus();
  edit_table_txt.select();
  editer_table_cell_tag = true;
  //
修改按钮提示信息
  editTip.innerText = "
请先点确定按钮确认修改!";  
 }
 else
 {
  return false;
 }
}

/**
 *
确定修改
 */
function certainEdit()
{
 var bObject = event.srcElement;
 var tdObject = bObject.parentNode; 
 var txtObject = tdObject.firstChild;
 tdObject.innerHTML = txtObject.value;
 //
代表编辑框已经关闭
 editer_table_cell_tag = false;
 //
修改按钮提示信息
 editTip.innerText = "
请单击某个单元格进行编辑!";
}

function enterToTab()
{
    if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
       && event.keyCode == 13)
    {
        event.keyCode = 9;
    }
}

/**
 *
控制是否编辑
 */
function editStart()
{
 if(event.srcElement.value == "
开始编辑")
 {
  event.srcElement.value = "
编辑完成";
  run_edit_flag = true;
 }
 else
 {
  //
如果当前没有编辑框,则编辑成功,否则,无法提交
  //
必须按确定按钮后才能正常提交
  if(editer_table_cell_tag == false)
  {
   alert("
编辑成功结束!");
   event.srcElement.value = "
开始编辑";
   run_edit_flag = false;
  }
 }
}

/**
 *
根据不同的按钮提供不同的提示信息
 */
function showTip()
{
 if(event.srcElement.value == "
编辑完成")
 {
  editTip.style.top = event.y + 15;
  editTip.style.left = event.x + 12;
  editTip.style.visibility = "visible";  
 }
 else
 {
  editTip.style.visibility = "hidden";   
 } 
}
-->
</SCRIPT>
<TABLE id="editer_table" width="100%" align="center"
    onclick="editerTableCell('editer_table','no_editer')"> 
    <TR class="TrHead">
  <TD colspan="3" align="center" id="no_editer">
自由编辑表格</TD>  
 </TR>
 <TR>
  <TD width="33%">
单击开始编辑按钮,然后点击各单元格编辑</TD>
  <TD width="33%">2</TD>
  <TD width="33%">3</TD>
 </TR>
 <TR>
  <TD width="33%">4</TD>
  <TD width="33%">5</TD>
  <TD width="33%">6</TD>
 </TR>
 <TR>
  <TD width="33%">one</TD>
  <TD width="33%">two</TD>
  <TD width="33%">three</TD>
 </TR>
 <TR>
  <TD width="33%">four</TD>
  <TD width="33%">five</TD>
  <TD width="33%">six</TD>
 </TR>  
    <TR class="TrFoot">
  <TD colspan="3" align="center" id="no_editer">
   <INPUT type="button" class="bt" value="
开始编辑" onClick="editStart()" onMouseOver="showTip()" onMouseMove="showTip()" onMouseOut="editTip.style.visibility = 'hidden';">
  </TD>
 </TR> 
</TABLE>
</BODY>
<DIV id="editTip">
请单击某个单元格进行编辑!</DIV>
</HTML>


样式表

 

Web开发时,不可避免要用到CSS,把我这几年在Web开发过程中积累的一些不常用但是很实用的CSS整理了一下,希望对大家有所帮助!

filter:chroma(color:#FFFFFF);
让指定的背景色透明,例:

未使用该滤镜

使用该滤镜

word-break:break-all;
强制换行,例:

当未使用该样式时,虽然我设置了表格宽度为100px,但是面对这样连续的字符,表格无法自动换行,表格会被撑破:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

再看看使用该样式后的效果:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

writing-mode:tb-rl;
用于设置文本的书写方向,可以有两个取值:
lr-tb
:表示左右-上下,left right - top bottom
tb-rl
:表示上下-右左,top bottom - right left
需要 IE 5.5+ 才支持,例:

第一组垂直文字第一组水平文字第二组水平文字
第二组水平文字第三组竖直文字第三组水平文字

text-indent:2em;
首行缩进,例:

有时候,我们需要将段落的首行缩进两个文字,一般我们都是用4HTML的空格(&nbsp;)来实现,其实我们还可以用样式表来达到这种效果!

background-color: transparent;
transparent
表示透明色,例:


border-collapse:collapse;
它会自动把相同的边框线合并,例:

不使用border-collapse:collapse;

1.1

1.2

2.1

2.2

使用border-collapse:collapse;

1.1

1.2

2.1

2.2

background-position: 0 -78;
设置背景图片的位置,例:
background-position的妙用》

table-layout: fixed;
固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关。也就是说,内容可能被裁切,例:
看看我以前写的一个仿msnhtc网格中应用这个属性的效果吧,仿照MSN的网格,单元格中文字过长会自动被截取(在Table中使用样式table-layout: fixed;),鼠标移上会全部显示(使用一个浮动的层覆盖在上面) 演示 下载

display:inline;
设置或检索对象是否及如何显示,inline表示内联,例:
大家都知道两个表格在一起,默认是会自动换行的,但是利用display:inline;属性可以让两个表格并排在一起:

表格1

 

表格2


overflow: auto;
检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。auto : 在需要时剪切内容并添加滚动条,例:

使用前的TextArea

使用后的TextArea

font:12px/18px;
字体大小/行高,例:

未使用CSS

使用该CSS

在这里行高是系统默认的,不会受影响的

这里的12px就表示字体大小,18px其实就等价于css中的line-height

clip : rect ( 0 64 64 0 )
字体大小/行高,例:
原图:
裁减后:  
可以利用这个来做动画:)

font-size: expression(document.body.clientWidth / 20);
expression
IE浏览器特有的功能,可以直接执行脚本而算出css的值,例:
CSS也能控制表格的交替颜色

字体大小随着浏览器大小而变化,始终为浏览器宽度的1/20


对于支持HTMLBBS来说,这可能会是一个安全隐患!

position: absolute;
这个我想绝大多数人都知道——绝对定位,我所要说的是偶然发现的一个隐含功能,例:
当给一个网页元素的CSS设置为"position: absolute;",那么它会绝对定位,然后根据css中的left,top属性确定自己的位置。但是如果我们仅仅设置一个元素样式表的"position: absolute;"属性,而不设置其left,top属性,那么该元素会浮在其html所在位置。看个例子,我将一个trCSS设置为"position: absolute;"

第一行

第二行


第一行浮在第二行上了,这个特性可以很方便的来制作重叠效果,例如我以前写过的自定义按钮和flash播放器都用到了这个特性来实现重叠:
自定义按钮:一个自定义按钮,底下是一个普通的Button,利用"position:absolute;"Button上面覆盖图片,这样看起来就像自定义按钮


[点击此处收藏本文]

发表于 20041020 9:48 AM

 

!java 发表于2004-10-20 10:24 PM  

弹出相当于按F11效果的窗口:window.open('','','fullscreen=1')
window.open('','','channelmode=1')
FLASH
弹出窗口
javascript:window.open('http://www.0668.com/guest/mmql/dyjlb/index.htm','','width=580,height=400,scrollbars=1');void(0)
FLASH
动态导入外部文本
loadVariables("text.txt", "_root.mcname");
有没有可能用层来遮住FLASH
1.
flashparameters里加入 <param name="wmode" value="transparent">
2.<body onblur=self.focus()>

----------------------
弹出窗口-------------------------------
<script language="JavaScript">
<!--
var gt = unescape('%3e');
var popup = null;
var over = "Launch Pop-up Navigator";
popup = window.open('', 'popupnav', 'width=300,height=225,resizable=1,scrollbars=auto');
if (popup != null) {
if (popup.opener == null) {
popup.opener = self;
}
popup.location.href = 'http://home.lufeng.net/huangyx/xsc1/pop.htm';
}
// -->
</script>
---------------------------
如何让表格并排? 首先在第一个表里应该这样写: "<table border=0 cellpadding=1 cellspacing=1 align=left>" table里最为关键是"align=left"这一句。 然后在第二个表里也应该加上align=left 这样,你的目的就达到了。
---------------------------------------------------------------------
如何让两个form表单行距之间不出现空格? 这样写 <TABLE><FORM><TR>.......</TR></FORM></TABLE>
-----------------------------------------------------------------------------
关闭窗口<a href="javascript:self.close();">关闭窗口</a>
----------------------------------------------------------
如何在我的页面中加入背景音乐?
IE: <bgsound src="*.mid" loop=infinite>
NS:<embed src="*.mid" autostart=true hidden=true loop=true>
------------------------------------------------------------------
FLASh
透明:<param name="wmode" value="transparent">
FLASh
居下层:<param name=wmode value=opaque>
FLASh
全屏fscommand(fullscreen, true)
flash
屏蔽右键:
flash浏览器中,fscommand ("showmenu", "false");
ie浏览器中,Stage.showmenu=false



iframe
背景可以透明:<body bgcolor=transparent>
<marquee height=100% width=95% direction=up onMouseOut=this.start()
onMouseOver=this.stop() scrollamount=1 scrolldelay=1>
我是 </font></marquee>
-----------------------------------------
平方米:M<sup>2</sup>
----------------------------------------
框架
<iframe style='height:98%; width:100%; ' leftmargin=0 scrolling=no framespacing=0 frameborder=0 src=../web/hyforum/index3.php?index=1></iframe>
<IFRAME border=0 name=msghtml marginWidth=0
frameSpacing=0 marginHeight=0 src="sitemap.files/msg.htm" frameBorder=0
noResize width=150 scrolling=no height=230 vspale="0"></IFRAME>
----------------------------------
层的绝对固定:
.layer-k { position: relative; clip: rect( )}
定位层的时候把层放在单元格里面。然后在所在的单元格里面用:
<td class=layer-k >
即可!
---------------------------------------------------------------
一)、设为首页

<a href=# onMouseOver=this.style.behavior="url(#default#homepage)";this.setHomePage("http://www.jsshow.com/");>
设为首页</a>

(二)、收藏本站

onclick="window.external.addFavorite('http://ivwsky.126.com','
天空工作室')"
href="">


(三)、在窗口的状态栏显示滚动信息
(1)
BODY中加入代码:
<script language="JavaScript">
var msg="
欢迎访问建站资源网,在这里有你会有所收获的!";
var i=1
function scroll()
{
mess=msg.substring(i,msg.length)+" "+msg.substring(0,i)
window.status=mess
i++;
if (i>=msg.length) i=1; //
设置不停滚动
setTimeout("scroll()",200); //
设置滚动速度
}
</script>

白色无阴影的滚动条样式
<style>
BODY {SCROLLBAR-FACE-COLOR: #FFFFFF; SCROLLBAR-HIGHLIGHT-COLOR: #CCCCCC; SCROLLBAR-SHADOW-COLOR: #CCCCCC; SCROLLBAR-3DLIGHT-COLOR: #FFFFFF; SCROLLBAR-ARROW-COLOR: #999999; SCROLLBAR-TRACK-COLOR: #CCCCCC; SCROLLBAR-DARKSHADOW-COLOR: #FFFFFF; }
</style>

防横向滚动条:

这可能是你的网站尺寸做得过于紧张,
现有几种方法可不出现横拉:

1.
800*600 设计为标准的,你最好把表格定为 766*426,这是没错的。

2.
你可以用代码使横拉永远不出现:

style="OVERFLOW-Y: hidden; OVERFLOW-X: hidden"

好明显 OVERFLOW-Y: hidden 为隐藏横拉,
OVERFLOW-X: hidden
为竖拉。
网页设计常用代码荟萃 (转)
2003-2-13 闪客天堂 双击自动滚屏;单击停止



禁止页面正文选取
<body foo1 ="return false" foo1 ="return false" foo1 ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()">

消除ie6自动出现的图像工具栏,设置 GALLERYIMG属性为falseno .
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="no">

防止点击空链接时,页面往往重置到页首端。
代码“javascript:void(null)”代替原来的“#”标记

如何避免别人把你的网页放在框架中
<script language=“javascript”><!--if (self!=top){top.location=self.location;} -->< /script>

页面定时刷新
<meta http-equiv="Refresh" content="
" >

页面定时转向新的地址
<meta http-equiv="refresh" content="
;URL=url">

显示日期
<script language="javascript"><!--
today=new Date();
var week; var date;
if(today.getDay()==0) week="
星期日"
if(today.getDay()==1) week="
星期一"
if(today.getDay()==2) week="
星期二"
if(today.getDay()==3) week="
星期三"
if(today.getDay()==4) week="
星期四"
if(today.getDay()==5) week="
星期五"
if(today.getDay()==6) week="
星期六"
date=(today.getYear())+"
"+(today.getMonth()+1)+""+today.getDate()+""+" "
document.write("<span style='font-size: 9pt;'>"+date+week+"</span>");
// -->
</script>

设为首页
<A href=# onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('url');">
设为首页</A>

添加收藏
<A href="javascript:window.external.AddFavorite('url','title')">
加入收藏夹</A>


网页效果集合
网页效果集合


1
。忽视右键
 <body oncontextmenu="return false">
 或
 <body style="overflow-y:hidden">
2
。加入背景音乐
 IE:<bgsound src="*.mid" loop=infinite>
 NS:<embed src="*.mid" autostart=true hidden=true loop=true>
 </embed>
 *.mid你的背景音乐的midi格式文件
3
。简单的window.open方法
 <a href="#"
 onclick="javascript:window.open(文件路径/文件名,newwindow,
 toolbar=no,scrollbars=yes,resizable=no,top=0,left=0,
 width=400,height=300);">文字或图片</a>
 参数解释:
 <SCRIPT LANGUAGE="javascript"> js脚本开始;
 window.open 弹出新窗口的命令;
 文件路径/文件名 弹出窗口的文件名;
 newwindow 弹出窗口的名字(不是文件名),非必须,可用空代替;
 width=400 窗口宽度;
 height=300 窗口高度;
 top=0 窗口距离屏幕上方的象素值;
 left=0 窗口距离屏幕左侧的象素值;
 toolbar=no 是否显示工具栏,yes为显示;
 menubarscrollbars 表示菜单栏和*动栏。
 resizable=no 是否允许改变窗口大小,yes为允许;
 location=no 是否显示地址栏,yes为允许;
 status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
 </SCRIPT> js脚本结束
4
。简单的页面加密
 <script LANGUAGE="javascript">
 <!--
 function loopy(){
  var sWord ="";
  while(sWord!="login"){sWord=prompt("请输入你的登陆密码");}
  alert("登陆成功!");
 }
 loopy()
 //-->
 </script>
5
。拉动页面时背景图不动
 <style>
 body{background-image:url(logo.gif);
 background-repeat:no-repeat;background-position:center}
 </style>
6
。让浏览器在保存页面时保存失败
 <NOSCRIPT><iframe src="*.html"></iframe></NOSCRIPT>
7
。随机替换图片
 <script>
 document.write(<img src="img/+parseInt(Math.random()*(5))
 +.gif"height="40" width="50">)
 </script>

 图片文件名为0.gif 1.gif 2.gif 3.gif 4.gif
8
。窗口定时关闭
 先将如下代码网页文件的区:
 <script language="javascript">
 function closeit() { setTimeout("self.close()",10000) //毫秒 }
 </script>
 然后再在<body>标内加入如:<body onload="closeit()">
9
。网页自动关闭
 <html>
 <head>
 <object id=closes type="application/x-oleobject"
 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
 <param name="Command" value="Close">
 </object>
 </head>
 <body onload="window.setTimeout(closes.Click(),10000)">
 这个窗口会在10秒过后自动关闭,而且不会出现提示.
 </body>
 </html>
10
。网页自动刷新
 在head部记入
 <META HTTP-EQUIV="Refresh" content="20">
 其中2020秒后自动刷新,你可以更改为任意值。
11
。网页自动转页
 <META HTTP-EQUIV="Refresh" CONTENT="时间();URL=地址">
12
。保持layer在最前面,而不被IframeObject所覆盖
 在Layer中再插Iframe Object z-Index
 <div z-Index:2><object ***></object> 前面
 <div z-Index:1><object ***></object> 后面
 <div id="Layer2" style="position:absolute; top:40;width:400px;
 height:95px;z-index:2"> height=100% width=100%>
 <iframe width=0 height=0></iframe>
 </div>
 <div id="Layer1" style="position:absolute; top:50;width:200px;
 height:115px;z-index:1">
 <iframe height=100% width=100%></iframe>
 </div>
13
。返回上一页
 <a href=javascript:history.back(1)>『返回上一页』</a>
14
。关闭窗口
 <a href=javascript:self.close()>『关闭窗口』</a>
15
。关于iframe的透明背景
 <IFRAME ID="iFrame1" SRC="iframe.htm"
 allowTransparency="true"
 style="background-color: green"></IFRAME>
----------------------------------------------------
让弹出窗口只打开一次
<script>
function openwin(){
window.open("page.html","","width=200,height=200")
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (documents ".cookie.length > 0) {
offset = documents ".cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = documents ".cookie.indexOf(";", offset);
if (end == -1)
end = documents ".cookie.length;
returnvalue=unescape(documents ".cookie.substring(offset, end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin()
documents ".cookie="popped=yes"
}
}
</script>
<body onload="loadpopup()">
-----------------------------------------------------------------------------
如何让浏览器在保存页面时保存失败?
<NOSCRIPT>
<IFRAME SRC="*.html">
</IFRAME>
</NOSCRIPT>
---------------------------------------
如何在不刷新页面的情况下刷新css?
<style>
button{ color:#000000;}
</style>
<button onclick=document.styleSheets[0].rules[0].style.color='red'>
点击按钮直接修改style标签里button选择符使按钮改为红色</button>
----------------------------------------------------------------------------------------
图片不显示虚线边框
onFocus="this.blur()"

解决iframe在页面中无法自适应
[ 2004-09-10 1:10:33 PM | Author: siyizhu | From: Blueidea ]

iframe
是一个比较特殊的控件。他的height只能是一个绝对值,不允许使用百分比。但是你可以用Javascript输出一个iframeHTML。但是这个相对值只能是当页面加载后赋给的。如果你resize。控件大小仍然是当初加载的高度。这个时候除了你在刷新。高度值才会重新加载。

这里我就想到了一个解决的方法。就是在body的标签中加上一个onResize事件;当你onload的时候触发写好的JS函数。然后在onResize的时候同样出发这个函数。从而解决上述问题。

演示代码如下:
<html>
<body bgcolor="#000000" onload="resizeHeight();" onResize="resizeHeight();">
<script language="javascript">
function resizeHeight()
{
document.getElementById("web".style.height = parseInt(document.body.clientHeight-50);

}
</script>

<iframe name="web" id="web" width="100%" scrolling="NO" frameborder=0 src="about:blank"></iframe>
</body>

</html>

 

S 发表于2004-10-22 2:03 PM  

GOOD

 

朽木 发表于2004-11-19 9:59 AM  

不错!

 

wooder 发表于2004-11-21 11:04 AM  

!都是精华!!!

 

STONE 发表于2004-11-25 12:01 AM  

收藏

 

gzzzz 发表于2005-01-13 2:24 PM  

Ping Back来自:blog.csdn.net

 

xiaoqi 发表于2005-01-23 1:52 PM  

做得很好啊!

 

xiaoqi 发表于2005-01-23 1:58 PM  

我请教一下,就是怎样加密一个网页 的代码让别人看不到呢?
我在网上找了一下,一般的都是将代码复制到一个文本框之类的,然后生成一些怪异的符号,但是这样我觉得不好,而且有时还出错,我以前见过一个加密的,看出来的效果就是在IE浏览器的菜单栏不能出现下面的菜单,就是不能使用吧,我想请教一下,这个该怎么写呢?

 

 发表于2005-01-24 11:29 AM  

<style="OVERFLOW-Y: hidden; OVERFLOW-X: hidden">防横向滚动
这个代码放在网页的哪个位置啊?
还有顺便问一下在cssBODY {SCROLLBAR-FACE-COLOR: #F4F0DC; SCROLLBAR-HIGHLIGHT-COLOR: #F4F0DC; SCROLLBAR-SHADOW-COLOR: #F4F0DC; SCROLLBAR-3DLIGHT-COLOR: #9FA776; SCROLLBAR-ARROW-COLOR: #9FA776; SCROLLBAR-TRACK-COLOR: #ffffff; SCROLLBAR-DARKSHADOW-COLOR: #9FA776; }
对框架滚动条的设置,回到网页里应该放在哪段代码前面?是不是放在<IFRAME name=content_frame marginWidth=0
marginHeight=0
src="friends.htm"
frameBorder=0 width=550 scrolling=horizon
height=379></IFRAME>
这个前面?

 

你可能感兴趣的:(script)