网页特效

 转至: http://blog.csdn.net/lihaidong2603/article/details/1521399
网页特效代码
1.
  οncοntextmenu="window.event.returnvalue=false"    将彻底屏蔽鼠标右键
   <table border οncοntextmenu=return(false)><td>no</table>  可用于 Table
2.
  <body onselectstart="return false">         取消选取、防止复制
3.
  οnpaste="return false"                     不准粘贴
4.
  οncοpy="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=
查看网页源代码
οnclick="window.location = 'view-source:'+ '
http://www.csdn.net/' ">
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" οnfοcus="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=
最小化 οnclick=hh1.Click()>
<input type=button value=
最大化 οnclick=hh2.Click()>
<input type=button value=
关闭 οnclick=hh3.Click()>
本例适用于 IE

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

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

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

持分页、 Recordset BookMark
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. οncοntextmenu="window.event.returnvalue=false"
将彻底屏蔽鼠标右键
<table border οncοntextmenu=return(false)><td>no</table>
可用于 Table

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

3. οnpaste="return false"
不准粘贴

4. οncοpy="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=
查看网页源代码
οnclick="window.location = 'view-source:'+ '
http://www.csdn.net/' ">

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" οnfοcus="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=
最小化 οnclick=hh1.Click()>
<input type=button value=
最大化 οnclick=hh2.Click()>
<input type=button value=
关闭 οnclick=hh3.Click()>
本例适用于 IE

17.
<%
'
定义数据库连接的一些常量
Const adOpenForwardOnly = 0 '
游标只向前浏览记录,不支持分页、 Recordset BookMark
Const adOpenKeyset = 1 '
键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、 Recordset BookMarkConst
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" οnclick="checkme()">
</BODY></HTML>

25.
获得本页 url request.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 οnkeydοwn="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 οnclick=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 οnerrοr=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 οnblur="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 οnblur="if(/[^a-zA-Z]/g.test(this.value))alert('
有错 ')">
4.2
判断字符由字母和数字组成。
<input οnblur="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 οnclick="checkAll('mm')">
全选 <br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/><br/>

<input type=checkbox name=All2 οnclick="checkAll('mm2')">
全选 <br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="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 οnchange="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 οnlοad="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:" 宁夏 ",65:" 新疆 ",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 <seasonx@163.net>
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(οnmοuseοut=οnmοuseup=function(){this.style.borderStyle='outset'}, οnmοusedοwn=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 οnclick='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' οndblclick=/"Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();/" οnmοuseup='parent.drag_up(event)' οnmοusemοve='parent.drag_move(event)' οnmοusedοwn='parent.drag_down(event)' onselectstart='return false' οncοntextmenu='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 οnclick=/"alert('Chromeless Window For IE6 SP1 - Ver 1.0//n//nCode By Windy_sk//n//nSpecial Thanks For andot')/" style=/""+CSStext+"padding-right:2px;/">?</span>";
temp += "<span id=Min οnclick='parent.New_CW.hide();parent.blur()' style=/""+CSStext+"/" title='Minimum'>0</span>";
temp += "<span id=Max οnclick=/"this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();/" style=/""+CSStext+"/" title='Maximum'>1</span>";
temp += "<span id=Close οnclick='parent.opener=null;parent.close()' style=/""+CSStext+"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) 电话号码为 3 8
   (3) 如果电话号码中包含有区号,那么区号为三位或四位
   (4) 区号用 "(" ")" "-" 和其他部分隔开
   (5) 移动电话号码为 11 12 位,如果为 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 οnclick="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 事件中写一个 enter tab 函数

//
回车键换为 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-SIZE: 10pt; LINE-HEIGHT: 150%;">宋体
;
font-size:12px;
POSITION: absolute;
BACKGROUND-COLOR: #f6f6f6;
TOP:30px;
LEFT:30px;
}
/*tr
的样式 */
tr
{
"
宋体 ";
color: #000000;
background-color: #C1DBF5;
font-size: 12px
}
/*table
脚注样式 */
.TrFoot
{
FONT-SIZE: 12px;
"
宋体 ", "Verdana", "Arial";
BACKGROUND-COLOR: #6699CC;
COLOR:#FFFFFF;
height: 25;
}
/*trhead
属性 */
.TrHead
{
FONT-SIZE: 13px;
"
宋体 ", "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;
"
宋体 ","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
为要编辑的 table id
* @para noEdiID
为不要编辑的 td ID, 比如说 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='
确定 ' οnclick='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"
οnclick="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);
让指定的背景色透明,例 :

未使用该滤镜 使用该滤镜

<table cellspacing = "0" cellpadding = "0" border = "1">
<tbody>
<tr align = "center" bgcolor = "#cccccc">
<td>
<img src = "
http://www.asp.net/images/quickstart.gif "/></td>
<td>
<img style = "FILTER: chroma(color:#000000)" src = "
http://www.asp.net/images/quickstart.gif "/></td>
</tr>
<tr align = "center">
<td>
未使用该滤镜 </td>
<td>
使用该滤镜 </td>
</tr>
</tbody>
</table>


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

当未使用该样式时,虽然我设置了表格宽度为 100px ,但是面对这样连续的字符,表格无法自动换行,表格会被撑破 : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
<table cellspacing = "0" cellpadding = "0" width = "100" border = "1">
<tbody>
<tr>
<td>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td></tr></tbody>
</table>


再看看使用该样式后的效果 : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
<table cellspacing = "0" cellpadding = "0" width = "100" border = "1" style = "WORD-BREAK: break-all">
<tbody>
<tr>
<td>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
</tr>
</tbody>
</table>


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

第一组垂直文字第一组水平文字第二组水平文字
第二组水平文字第三组竖直文字第三组水平文字
<style>
.clsHoriz
{
writing-mode: lr-tb
}
</style>
<div style = "writing-mode:tb-rl">
第一组垂直文字 <span class = "clsHoriz"> 第一组水平文字 </span> 第二组水平文字
<br/>
<span style = "writing-mode:lr-tb">
第二组水平文字 </span> 第三组竖直文字 <span class = "clsHoriz"> 第三组水平文字 </span>
</div>


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

有时候,我们需要将段落的首行缩进两个文字,一般我们都是用 4 HTML 的空格 (&nbsp;) 来实现,其实我们还可以用样式表来达到这种效果!
<p style = "text-indent:2em;width:200px;">
有时候,我们需要将段落的首行缩进两个文字,一般我们都是用 4 HTML 的空格 (&amp;nbsp;) 来实现,其实我们还可以用样式表来达到这种效果! </p>

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

背景透明的 TextArea
<span style = "background-color: #CCCCCC; padding:20px;">
<textarea style = "background-color: transparent;">
背景透明的 TextArea

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
<style>
.grid
{
border-collapse: collapse;
}
.grid td
{
border: solid 1px #cccccc;
}
.gridNoCollapse td
{
border: solid 1px #cccccc;
}
</style>
不使用 border-collapse:collapse;
<table border = "0" cellpadding = "4" cellspacing = "0" width = "200" class = "gridNoCollapse">
<tr>
<td>
1.1</td>
<td>
1.2</td>
</tr>
<tr>
<td>
2.1</td>
<td>
2.2</td>
</tr>
</table>
使用 border-collapse:collapse;
<table border = "0" cellpadding = "4" cellspacing = "0" width = "200" class = "grid">
<tr>
<td>
1.1</td>
<td>
1.2</td>
</tr>
<tr>
<td>
2.1</td>
<td>
2.2</td>
</tr>
</table>


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

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

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

<table border="1" style="display:inline;">
<tr>
<td>
表格 1</td>
</tr>
</table>
<table border="1" style="display:inline;">
<tr>
<td>
表格 2</td>
</tr>
</table>


overflow: auto;
检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。 auto : 在需要时剪切内容并添加滚动条,例 :
使用前的 TextArea 使用后的 TextArea
默认有滚动条 只有当文字超出范围时滚动条才会出现

font:12px/18px;
字体大小 / 行高,例 :
未使用 CSS 使用该 CSS
在这里行高是系统默认的,不会受影响的
这里的 12px 就表示字体大小, 18px 其实就等价于 css 中的 line-height

<table border="" cellpadding="" cellspacing="" width="200" >
<tr>
<td>
未使用 CSS</td>
<td>
使用该 CSS</td>
</tr>
<tr>
<td>
<p>
在这里行高是系统默认的,不会受影响的
</p>
</td>
<td><p style="font:12px/18px;">
这里的 12px 就表示字体大小, 18px 其实就等价于 css 中的 line-height </p></td>
</tr>
</table>


clip : rect ( 0 64 64 0 )
字体大小 / 行高,例 :
原图:
裁减后:
原图:
<a href="
http://www.webuc.net/myproject/rpg/images/girl.gif " target="_blank"><img src=" http://www.webuc.net/myproject/rpg/images/girl.gif " width="128" border="0"></a><br />
裁减后:
<span style="clip:rect(0 64 64 0);width:64px;height:64px;position:absolute;"><img src="
http://www.webuc.net/myproject/rpg/images/girl.gif "></span><span style="width:64px;height:64px;"> </span>
可以利用这个来做动画 :)

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

字体大小随着浏览器大小而变化,始终为浏览器宽度的 1/20
<div style="font-size:
expression(document.body.clientWidth / 20);">
字体大小随着浏览器大小而变化,始终为浏览器宽度的 1/20
</div>

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

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

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

Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=143752

[ 点击此处收藏本文 ] 发表于 2004 10 20 9:48 AM


!java
发表于 2004-10-20 10:24 PM IP: 211.162.82.*
弹出相当于按 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.
flash parameters 里加入 <param name="wmode" value="transparent">
2.<body οnblur=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>

(二)、收藏本站

οnclick="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" οnselect="document.selection.empty()" οncοpy="document.selection.empty()" onbeforecopy="return false"οnmοuseup="document.selection.empty()">

消除 ie6 自动出现的图像工具栏,设置 GALLERYIMG 属性为 false no .
<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=# οnclick="this.style.behavior='url(#default#homepage)';this.setHomePage('url');">
设为首页 </A>

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

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

1
。忽视右键
  <body οncοntextmenu="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="#"
  οnclick="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 为显示;
  menubar scrollbars 表示菜单栏和 * 动栏。
  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 οnlοad="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 οnlοad="window.setTimeout(closes.Click(),10000)">
 这个窗口会在 10 秒过后自动关闭 , 而且不会出现提示 .
  </body>
  </html>
10
。网页自动刷新
 在 head 部记入
  <META HTTP-EQUIV="Refresh" content="20">
 其中 20 20 秒后自动刷新,你可以更改为任意值。
11
。网页自动转页
  <META HTTP-EQUIV="Refresh" CONTENT=" 时间 ( );URL= 地址 ">
12
。保持 layer 在最前面,而不被 Iframe Object 所覆盖
 在 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 οnlοad="loadpopup()">
-----------------------------------------------------------------------------
如何让浏览器在保存页面时保存失败?
<NOSCRIPT>
<IFRAME SRC="*.html">
</IFRAME>
</NOSCRIPT>
---------------------------------------
如何在不刷新页面的情况下刷新 css?
<style>
button{ color:#000000;}
</style>
<button οnclick=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 输出一个 iframe HTML 。但是这个相对值只能是当页面加载后赋给的。如果你 resize 。控件大小仍然是当初加载的高度。这个时候除了你在刷新。高度值才会重新加载。

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

演示代码如下:
<html>
<body bgcolor="#000000" οnlοad="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>

网页特效代码
1.
  οncοntextmenu="window.event.returnvalue=false"    将彻底屏蔽鼠标右键
   <table border οncοntextmenu=return(false)><td>no</table>  可用于 Table
2.
  <body onselectstart="return false">         取消选取、防止复制
3.
  οnpaste="return false"                     不准粘贴
4.
  οncοpy="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=
查看网页源代码
οnclick="window.location = 'view-source:'+ '
http://www.csdn.net/' ">
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" οnfοcus="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=
最小化 οnclick=hh1.Click()>
<input type=button value=
最大化 οnclick=hh2.Click()>
<input type=button value=
关闭 οnclick=hh3.Click()>
本例适用于 IE

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

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

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

持分页、 Recordset BookMark
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. οncοntextmenu="window.event.returnvalue=false"
将彻底屏蔽鼠标右键
<table border οncοntextmenu=return(false)><td>no</table>
可用于 Table

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

3. οnpaste="return false"
不准粘贴

4. οncοpy="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=
查看网页源代码
οnclick="window.location = 'view-source:'+ '
http://www.csdn.net/' ">

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" οnfοcus="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=
最小化 οnclick=hh1.Click()>
<input type=button value=
最大化 οnclick=hh2.Click()>
<input type=button value=
关闭 οnclick=hh3.Click()>
本例适用于 IE

17.
<%
'
定义数据库连接的一些常量
Const adOpenForwardOnly = 0 '
游标只向前浏览记录,不支持分页、 Recordset BookMark
Const adOpenKeyset = 1 '
键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、 Recordset BookMarkConst
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" οnclick="checkme()">
</BODY></HTML>

25.
获得本页 url request.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 οnkeydοwn="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 οnclick=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 οnerrοr=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 οnblur="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 οnblur="if(/[^a-zA-Z]/g.test(this.value))alert('
有错 ')">
4.2
判断字符由字母和数字组成。
<input οnblur="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 οnclick="checkAll('mm')">
全选 <br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/>
<input type=checkbox name=mm οnclick="checkItem('All')"><br/><br/>

<input type=checkbox name=All2 οnclick="checkAll('mm2')">
全选 <br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 οnclick="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 οnchange="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 οnlοad="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:" 宁夏 ",65:" 新疆 ",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 <seasonx@163.net>
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(οnmοuseοut=οnmοuseup=function(){this.style.borderStyle='outset'}, οnmοusedοwn=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 οnclick='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' οndblclick=/"Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();/" οnmοuseup='parent.drag_up(event)' οnmοusemοve='parent.drag_move(event)' οnmοusedοwn='parent.drag_down(event)' onselectstart='return false' οncοntextmenu='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 οnclick=/"alert('Chromeless Window For IE6 SP1 - Ver 1.0//n//nCode By Windy_sk//n//nSpecial Thanks For andot')/" style=/""+CSStext+"padding-right:2px;/">?</span>";
temp += "<span id=Min οnclick='parent.New_CW.hide();parent.blur()' style=/""+CSStext+"/" title='Minimum'>0</span>";
temp += "<span id=Max οnclick=/"this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();/" style=/""+CSStext+"/" title='Maximum'>1</span>";
temp += "<span id=Close οnclick='parent.opener=null;parent.close()' style=/""+CSStext+"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) 电话号码为 3 8
   (3) 如果电话号码中包含有区号,那么区号为三位或四位
   (4) 区号用 "(" ")" "-" 和其他部分隔开
   (5) 移动电话号码为 11 12 位,如果为 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 οnclick="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 事件中写一个 enter tab 函数

//
回车键换为 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-SIZE: 10pt; LINE-HEIGHT: 150%;">宋体
;
font-size:12px;
POSITION: absolute;
BACKGROUND-COLOR: #f6f6f6;
TOP:30px;
LEFT:30px;
}
/*tr
的样式 */
tr
{
"
宋体 ";
color: #000000;
background-color: #C1DBF5;
font-size: 12px
}
/*table
脚注样式 */
.TrFoot
{
FONT-SIZE: 12px;
"
宋体 ", "Verdana", "Arial";
BACKGROUND-COLOR: #6699CC;
COLOR:#FFFFFF;
height: 25;
}
/*trhead
属性 */
.TrHead
{
FONT-SIZE: 13px;
"
宋体 ", "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;
"
宋体 ","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
为要编辑的 table id
* @para noEdiID
为不要编辑的 td ID, 比如说 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='
确定 ' οnclick='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"
οnclick="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);
让指定的背景色透明,例 :

未使用该滤镜 使用该滤镜

<table cellspacing = "0" cellpadding = "0" border = "1">
<tbody>
<tr align = "center" bgcolor = "#cccccc">
<td>
<img src = "
http://www.asp.net/images/quickstart.gif "/></td>
<td>
<img style = "FILTER: chroma(color:#000000)" src = "
http://www.asp.net/images/quickstart.gif "/></td>
</tr>
<tr align = "center">
<td>
未使用该滤镜 </td>
<td>
使用该滤镜 </td>
</tr>
</tbody>
</table>


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

当未使用该样式时,虽然我设置了表格宽度为 100px ,但是面对这样连续的字符,表格无法自动换行,表格会被撑破 : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
<table cellspacing = "0" cellpadding = "0" width = "100" border = "1">
<tbody>
<tr>
<td>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td></tr></tbody>
</table>


再看看使用该样式后的效果 : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
<table cellspacing = "0" cellpadding = "0" width = "100" border = "1" style = "WORD-BREAK: break-all">
<tbody>
<tr>
<td>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
</tr>
</tbody>
</table>


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

第一组垂直文字第一组水平文字第二组水平文字
第二组水平文字第三组竖直文字第三组水平文字
<style>
.clsHoriz
{
writing-mode: lr-tb
}
</style>
<div style = "writing-mode:tb-rl">
第一组垂直文字 <span class = "clsHoriz"> 第一组水平文字 </span> 第二组水平文字
<br/>
<span style = "writing-mode:lr-tb">
第二组水平文字 </span> 第三组竖直文字 <span class = "clsHoriz"> 第三组水平文字 </span>
</div>


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

有时候,我们需要将段落的首行缩进两个文字,一般我们都是用 4 HTML 的空格 (&nbsp;) 来实现,其实我们还可以用样式表来达到这种效果!
<p style = "text-indent:2em;width:200px;">
有时候,我们需要将段落的首行缩进两个文字,一般我们都是用 4 HTML 的空格 (&amp;nbsp;) 来实现,其实我们还可以用样式表来达到这种效果! </p>

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

背景透明的 TextArea
<span style = "background-color: #CCCCCC; padding:20px;">
<textarea style = "background-color: transparent;">
背景透明的 TextArea

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
<style>
.grid
{
border-collapse: collapse;
}
.grid td
{
border: solid 1px #cccccc;
}
.gridNoCollapse td
{
border: solid 1px #cccccc;
}
</style>
不使用 border-collapse:collapse;
<table border = "0" cellpadding = "4" cellspacing = "0" width = "200" class = "gridNoCollapse">
<tr>
<td>
1.1</td>
<td>
1.2</td>
</tr>
<tr>
<td>
2.1</td>
<td>
2.2</td>
</tr>
</table>
使用 border-collapse:collapse;
<table border = "0" cellpadding = "4" cellspacing = "0" width = "200" class = "grid">
<tr>
<td>
1.1</td>
<td>
1.2</td>
</tr>
<tr>
<td>
2.1</td>
<td>
2.2</td>
</tr>
</table>


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

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

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

<table border="1" style="display:inline;">
<tr>
<td>
表格 1</td>
</tr>
</table>
<table border="1" style="display:inline;">
<tr>
<td>
表格 2</td>
</tr>
</table>


overflow: auto;
检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。 auto : 在需要时剪切内容并添加滚动条,例 :
使用前的 TextArea 使用后的 TextArea
默认有滚动条 只有当文字超出范围时滚动条才会出现

font:12px/18px;
字体大小 / 行高,例 :
未使用 CSS 使用该 CSS
在这里行高是系统默认的,不会受影响的
这里的 12px 就表示字体大小, 18px 其实就等价于 css 中的 line-height

<table border="" cellpadding="" cellspacing="" width="200" >
<tr>
<td>
未使用 CSS</td>
<td>
使用该 CSS</td>
</tr>
<tr>
<td>
<p>
在这里行高是系统默认的,不会受影响的
</p>
</td>
<td><p style="font:12px/18px;">
这里的 12px 就表示字体大小, 18px 其实就等价于 css 中的 line-height </p></td>
</tr>
</table>


clip : rect ( 0 64 64 0 )
字体大小 / 行高,例 :
原图:
裁减后:
原图:
<a href="
http://www.webuc.net/myproject/rpg/images/girl.gif " target="_blank"><img src=" http://www.webuc.net/myproject/rpg/images/girl.gif " width="128" border="0"></a><br />
裁减后:
<span style="clip:rect(0 64 64 0);width:64px;height:64px;position:absolute;"><img src="
http://www.webuc.net/myproject/rpg/images/girl.gif "></span><span style="width:64px;height:64px;"> </span>
可以利用这个来做动画 :)

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

字体大小随着浏览器大小而变化,始终为浏览器宽度的 1/20
<div style="font-size:
expression(document.body.clientWidth / 20);">
字体大小随着浏览器大小而变化,始终为浏览器宽度的 1/20
</div>

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

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

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

Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=143752

[ 点击此处收藏本文 ] 发表于 2004 10 20 9:48 AM


!java
发表于 2004-10-20 10:24 PM IP: 211.162.82.*
弹出相当于按 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.
flash parameters 里加入 <param name="wmode" value="transparent">
2.<body οnblur=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>

(二)、收藏本站

οnclick="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" οnselect="document.selection.empty()" οncοpy="document.selection.empty()" onbeforecopy="return false"οnmοuseup="document.selection.empty()">

消除 ie6 自动出现的图像工具栏,设置 GALLERYIMG 属性为 false no .
<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=# οnclick="this.style.behavior='url(#default#homepage)';this.setHomePage('url');">
设为首页 </A>

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

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

1
。忽视右键
  <body οncοntextmenu="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="#"
  οnclick="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 为显示;
  menubar scrollbars 表示菜单栏和 * 动栏。
  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 οnlοad="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 οnlοad="window.setTimeout(closes.Click(),10000)">
 这个窗口会在 10 秒过后自动关闭 , 而且不会出现提示 .
  </body>
  </html>
10
。网页自动刷新
 在 head 部记入
  <META HTTP-EQUIV="Refresh" content="20">
 其中 20 20 秒后自动刷新,你可以更改为任意值。
11
。网页自动转页
  <META HTTP-EQUIV="Refresh" CONTENT=" 时间 ( );URL= 地址 ">
12
。保持 layer 在最前面,而不被 Iframe Object 所覆盖
 在 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 οnlοad="loadpopup()">
-----------------------------------------------------------------------------
如何让浏览器在保存页面时保存失败?
<NOSCRIPT>
<IFRAME SRC="*.html">
</IFRAME>
</NOSCRIPT>
---------------------------------------
如何在不刷新页面的情况下刷新 css?
<style>
button{ color:#000000;}
</style>
<button οnclick=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 输出一个 iframe HTML 。但是这个相对值只能是当页面加载后赋给的。如果你 resize 。控件大小仍然是当初加载的高度。这个时候除了你在刷新。高度值才会重新加载。

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

演示代码如下:
<html>
<body bgcolor="#000000" οnlοad="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>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值