javascrip部分功能

javascript事件查询综合
click() 对象.click() 使对象被点击。
closed 对象.closed 对象窗口是否已关闭true/false
clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象
confirm("提示信息") 弹出确认框,确定返回true取消返回false
cursor:样式 更改鼠标样式 hand crosshair text wait help default auto e/s/w/n-resize

event.clientX 返回最后一次点击鼠标X坐标值;
event.clientY 返回最后一次点击鼠标Y坐标值;
event.offsetX 返回当前鼠标悬停X坐标值
event.offsetY 返回当前鼠标悬停Y坐标值

document.write(document.lastModified) 网页最后一次更新时间
document.οndblclick=x 当双击鼠标产生事件
document.οnmοusedοwn=x 单击鼠标键产生事件

document.body.scrollTop; 返回和设置当前竖向滚动条的坐标值,须与函数配合,
document.body.scrollLeft; 返回和设置当前横向滚动务的坐标值,须与函数配合,
document.title document.title="message"; 当前窗口的标题栏文字
document.bgcolor document.bgcolor="颜色值"; 改变窗口背景颜色
document.Fgcolor document.Fgcolor="颜色值"; 改变正文颜色
document.linkcolor document.linkcolor="颜色值"; 改变超联接颜色
document.alinkcolor document.alinkcolor="颜色值"; 改变正点击联接的颜色
document.VlinkColor document.VlinkColor="颜色值"; 改变已访问联接的颜色
document.forms.length 返回当前页form表单数
document.anchors.length 返回当前页锚的数量
document.links.length 返回当前页联接的数量
document.οnmοusedοwn=x 单击鼠标触发事件
document.οndblclick=x 双击鼠标触发事件
defaultStatus window.status=defaultStatus; 将状态栏设置默认显示

function function xx(){...} 定义函数
isNumeric 判断是否是数字
innerHTML xx=对象.innerHTML 输入某对象标签中的html源代码
innerText divid.innerText=xx 将以div定位以id命名的对象值设为XX

location.reload(); 使本页刷新,target可等于一个刷新的网页

Math.random() 随机涵数,只能是0到1之间的数,如果要得到其它数,可以为*10,再取整
Math.floor(number) 将对象number转为整数,舍取所有小数
Math.min(1,2) 返回1,2哪个小
Math.max(1,2) 返回1,2哪个大

navigator.appName 返回当前浏览器名称
navigator.appVersion 返回当前浏览器版本号
navigator.appCodeName 返回当前浏览器代码名字
navigator.userAgent 返回当前浏览器用户代标志

onsubmit οnsubmit="return(xx())" 使用函数返回值
opener opener.document.对象 控制原打开窗体对象

prompt xx=window.prompt("提示信息","预定值"); 输入语句
parent parent.框架名.对象 控制框架页面

return return false 返回值
random 随机参数(0至1之间)
reset() form.reset(); 使form表单内的数据重置

split("") string.split("") 将string对象字符以逗号隔开
submit() form对象.submit() 使form对象提交数据

String对象的 charAt(x)对象 反回指定对象的第多少位的字母
lastIndexOf("string") 从右到左询找指定字符,没有返回-1
indexOf("string") 从左到右询找指定字符,没有返回-1
LowerCase() 将对象全部转为小写
UpperCase() 将对象全部转为大写
substring(0,5) string.substring(x,x) 返回对象中从0到5的字符
setTimeout("function",time) 设置一个超时对象
setInterval("function",time) 设置一个超时对象

toLocaleString() x.toLocaleString() 从x时间对象中获取时间,以字符串型式存在
typeof(变量名) 检查变量的类型,值有:String,Boolean,Object,Function,Underfined

window.event.button==1/2/3 鼠标键左键等于1右键等于2两个键一起按为3
window.screen.availWidth 返回当前屏幕宽度(空白空间)
window.screen.availHeight 返回当前屏幕高度(空白空间)
window.screen.width 返回当前屏幕宽度(分辨率值)
window.screen.height 返回当前屏幕高度(分辨率值)
window.document.body.offsetHeight; 返回当前网页高度
window.document.body.offsetWidth; 返回当前网页宽度
window.resizeTo(0,0) 将窗口设置宽高
window.moveTo(0,0) 将窗口移到某位置
window.focus() 使当前窗口获得焦点
window.scroll(x,y) 窗口滚动条坐标,y控制上下移动,须与函数配合
window.open() window.open("地址","名称","属性")
属性:toolbar(工具栏),location(地址栏),directions,status(状态栏),
menubar(菜单栏),scrollbar(滚动条),resizable(改变大小), width(宽),height(高),fullscreen(全 屏),scrollbars(全屏时无滚动条无参 数,channelmode(宽屏),left(打开窗口x坐标),top(打开窗口y坐标)
window.location = 'view-source:' + window.location.href 应用事件查看网页源代码;


a=new Date(); //创建a为一个新的时期对象
y=a.getYear(); //y的值为从对象a中获取年份值 两位数年份
y1=a.getFullYear(); //获取全年份数 四位数年份
m=a.getMonth(); //获取月份值
d=a.getDate(); //获取日期值
d1=a.getDay(); //获取当前星期值
h=a.getHours(); //获取当前小时数
m1=a.getMinutes(); //获取当前分钟数
s=a.getSeconds(); //获取当前秒钟数


对象.style.fontSize="文字大小";
单位:mm/cm/in英寸/pc帕/pt点/px象素/em文字高
1in=1.25cm
1pc=12pt
1pt=1.2px(800*600分辩率下)

文本字体属性:
fontSize大小
family字体
color颜色
fontStyle风格,取值为normal一般,italic斜体,oblique斜体且加粗
fontWeight加粗,取值为100到900不等,900最粗,light,normal,bold
letterSpacing间距,更改文字间距离,取值为,1pt,10px,1cm
textDecoration:文字修饰;取值,none不修饰,underline下划线,overline上划线
background:文字背景颜色,
backgroundImage:背景图片,取值为图片的插入路径


点击网页正文函数调用触发器:

1.onClick 当对象被点击
2.onLoad 当网页打开,只能书写在body中
3.onUnload 当网页关闭或离开时,只能书写在body中
4.onmouseover 当鼠标悬于其上时
5.onmouseout 当鼠标离开对象时
6.onmouseup 当鼠标松开
7.onmousedown 当鼠标按下键
8.onFocus 当对象获取焦点时
9.onSelect 当对象的文本被选中时
10.onChange 当对象的内容被改变
11.onBlur 当对象失去焦点
οnsubmit=return(ss())表单调用时返回的值

直线 border-bottom:1x solid black
虚线 border-bottom:1x dotted black
点划线 border-bottom:2x dashed black
双线 border-bottom:5x double black
槽状 border-bottom:1x groove black
脊状 border-bottom:1x ridge black


1.边缘高光glow(color=颜色,strength=亮光大小)<br/>
2.水平翻转fliph() 使对象水平翻转180度<br/>
3.垂直翻转flipv() 使对象垂直翻转180度<br/>
4.对象模糊blur(add=true/false direction=方向 strength=强度)
add指定是否按印象画派进行模糊direction模糊方向strength模糊强度
5.对象透明alpha(opaction=0-100,finishopacity=0-100,style=0/1/2/3)
opaction对象整体不透明值finishopacity当对象利用了渐透明时该项指定结束透明位置的不透明值style指定透明方式0为整体透明,1为线型透明,2为圆型透明,3为矩形透明
6.去除颜色chroma(color=颜色值)使对象中颜色与指定颜色相同区域透明
7.建立阴影dropshadow(color=阴影颜色,offx=水平向左偏离像素,offy=水平向下偏离像素)
8.去色gray()使对象呈灰度显示
9.负片效果invert()使对象呈底片效果
10.高光light()使对象呈黑色显示
11.遮盖mask(color=颜色)使整个对象以指定颜色进行蒙板一次

opacity 表透明度水平.0~100,0表全透明,100表完全不透明
finishopacity表想要设置的渐变透明效果.0~100.
style 表透明区的形状.0表统一形状.1表线形.2表放射形.3表长方形.
startx.starty表渐变透明效果的开始时X和Y坐标.
finishx,finishy渐变透明效果结束时x,y 的坐标.
add有来确定是否在模糊效果中使有原有目标.值为0,1.0表"否",1表"是".
direction设置模糊的方向.0度表垂直向上,45度为一个单位.默认值是向左270度.left,right,down,up.
strength 只能用整数来确定.代表有多少个像素的宽度将受到模糊影响.默认是5个.
color要透明的颜色.
offx,offy分别是x,y 方向阴影的偏移量.
positive指投影方式.0表透明像素生成阴影.1表只给出不透明像素生成阴影..

AddAmbient:加入包围的光源.
AddCone:加入锥形光源.
AddPoint加入点光源
Changcolor:改变光的颜色.
Changstrength:改变光源的强度.
Clear:清除所有的光源.
MoveLight:移动光源.

freq是波纹的频率,在指定在对象上一区需要产生多少个完事的波纹.
lightstrength可对于波纹增强光影的效果.显著0~100正整数,正弦波开始位置是0~360度.0表从0度开始,25表从90度开始.
strength表振幅大小.


hand style="cursor:hand"
crosshair style="cursor:crosshair"
text style="cursor:text"
wait style="cursor:wait"
default style="cursor:default"
help style="cursor:help"
e-resize style="cursor:e-resize"
ne-resize style="cursor:ne-resize"
n-resize style="cursor:n-resize"
nw-resize style="cursor:nw-resize"
w-resize style="cursor:w-resize"
s-resize style="cursor:s-resize"
sw-resize style="cursor:sw-resize "
se-resize style="cursor:se-resize"
auto style="cursor:auto"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 数字输入控制,给数字加上千分符 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style>
.inputRight {
text-align: right;
border: 1px #666666  dashed; 
font-size: 9pt;
color: #993366;
height: 18px;
ime-mode : disabled;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
/*
这些功能建议通过HTC来实现
*/

//数字输入控制
function FormatInput(dotlen)
{
var myEle=event.srcElement;
var myValue=String.fromCharCode(event.keyCode);
if (myEle.readOnly)
{
return;
}
switch(dotlen)
{
//原正则表达式(可以输入负数):/^[/-]?/d*/.?/d{0,0}$/
case 0:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,0}$/,  myValue); break;}
case 1:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,1}$/,  myValue); break;}
case 2:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,2}$/,  myValue); break;}
case 3:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,3}$/,  myValue); break;}
case 4:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,4}$/,  myValue); break;}
case 5:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,5}$/,  myValue); break;}
case 6:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,6}$/,  myValue); break;}
case 7:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,7}$/,  myValue); break;}
case 8:{event.returnValue = regInput(myEle, /^/d*/.?/d{0,8}$/,  myValue); break;}
default :{event.returnValue = regInput(myEle, /^/d*/.?/d{0,0}$/,  myValue); break;}
}
}
function regInput(obj, reg, inputStr)
{
var docSel = document.selection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()

oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
return reg.test(str)
}
//给数字加上千分符 by yuanzy
function splitNumber(eValue)
{
var intPart = "";
var decPart = "";
if (eValue.indexOf(",")>=0)
{
eValue=eValue.replace(/,/g,"");
}
if (eValue.indexOf(".")>=0)
{
intPart=eValue.split(".")[0];
decPart=eValue.split(".")[1];
}
else
{
intPart = eValue;
}
var num  =  intPart+""; 
    var  re=/(-?/d+)(/d{3})/ 
    while(re.test(num)){ 
num=num.replace(re,"$1,$2") 
    } 
if (eValue.indexOf(".")>=0)
{
eValue=num + "." + decPart;
}
else
{
eValue=num ;
}
return eValue;
}

function oFocus()
{
if (event.srcElement.readOnly) return;
event.srcElement.value=event.srcElement.value.replace(/,/g,"");
}

function oBlur()
{
if (event.srcElement.value=="-")
{
event.srcElement.value="";
}
event.srcElement.value = splitNumber(event.srcElement.value);
}

</SCRIPT>
</HEAD>

<BODY>

<input class="inputRight" type='text'  οnfοcus="oFocus();" οnblur="oBlur();" onKeypress="FormatInput(2);" >
</BODY>
</HTML>


IE功能汇总
<OBJECT id=WebBrowser height=0 width=0
      classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2></OBJECT>
<INPUT οnclick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开 name=Button1>
<INPUT οnclick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为 name=Button2>
<INPUT οnclick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性 name=Button3>
<INPUT οnclick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印 name=Button>
<INPUT οnclick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置 name=Button4>
<INPUT οnclick=window.location.reload() type=button value=刷新 name=refresh>
<INPUT οnclick="window.external.ImportExportFavorites(true,'');" type=button value=导入收藏夹 name=Button5>
<INPUT οnclick="window.external.ImportExportFavorites(false,'');" type=button value=导出收藏夹 name=Button32>
<INPUT οnclick="window.external.AddFavorite(location.href, document.title)" type=button value=加入收藏夹 name=Button22>
<INPUT οnclick="window.external.ShowBrowserUI('OrganizeFavorites', null)" type=button value=整理收藏夹 name=Submit2>
<INPUT οnclick='window.location="view-source:" + window.location.href' type=button value=查看源文件 name=Button7>
<INPUT οnclick="window.external.ShowBrowserUI('LanguageDialog', null)" type=button value=语言设置 name=Button6>
<INPUT οnclick="document.execCommand('Cut')" type=button value=剪切>
<INPUT οnclick="document.execCommand('Copy')" type=button value=拷贝>
<INPUT οnclick="document.execCommand('Paste')" type=button value=粘贴>
<INPUT οnclick="document.execCommand('Undo')" type=button value=撤消>
<INPUT οnclick="document.execCommand('Delete')" type=button value=删除>
<INPUT οnclick="document.execCommand('Bold')" type=button value=黑体>
<INPUT οnclick="document.execCommand('Italic')" type=button value=斜体>
<INPUT οnclick="document.execCommand('Underline')" type=button value=下划线>
<INPUT οnclick="document.execCommand('stop')" type=button value=停止>
<INPUT οnclick="document.execCommand('SaveAs')" type=button value=保存>
<INPUT οnclick="document.execCommand('Saveas',false,'c://test.htm')" type=button value=另存为>
<INPUT οnclick="document.execCommand('FontName',false,fn)" type=button value=字体>
<INPUT οnclick="document.execCommand('FontSize',false,fs)" type=button value=字体大小>
<INPUT οnclick="document.execCommand('refresh',false,0)" type=button value=刷新>
<INPUT οnclick=window.location.reload() type=button value=刷新>
<INPUT οnclick=history.go(1) type=button value=前进>
<INPUT οnclick=history.go(-1) type=button value=后退>
<INPUT οnclick=history.forward() type=button value=前进>
<INPUT οnclick=history.back() type=button value=后退>
<INPUT οnclick='window.external.ImportExportFavorites(true,"http://localhost");' type=button value=导入收藏夹>
<INPUT οnclick='window.external.ImportExportFavorites(false,"http://localhost");' type=button value=导出收藏夹>
<INPUT οnclick="window.external.ShowBrowserUI('OrganizeFavorites', null)" type=button value=整理收藏夹>
<INPUT οnclick="window.location = 'view-source:'+ window.location.href" type=button value=查看源文件>
<INPUT οnclick="window.external.ShowBrowserUI('LanguageDialog', null)" type=button value=语言设置>
<INPUT οnclick="window.external.AddFavorite('http://www.cnblogs.com/hbzxf/', 阿好空间)" type=button value=加入收藏夹>
<INPUT οnclick="window.external.addChannel('http://www.cnblogs.com/hbzxf/')" type=button value=加入到频道>
<INPUT οnclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.cnblogs.com/hbzxf/')" type=button value=设成主页>

窗口打开自动最大化代码
<!-- 窗口打开后最大化 -->
<OBJECT id="max" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"><PARAM name="Command" value="Maximize"></OBJECT>
<script>
if(window.screenLeft!=0)
max.Click();
</script>
<!-- 窗口打开后最大化结束 -->

利用脚本封装,方便实现网站悬浮广告

下面是JS脚本(floatdiv.js)
/*======================================================================
  浮动块支持脚本
  DESIGN BY :  彭国辉
  DATE:        2004-02-26
  SITE:        http://kacarton.yeah.net/
  BLOG:        http://blog.csdn.net/nhconch
  EMAIL:       kacarton@sohu.com

文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持!
======================================================================*/

var alLeft = 0, alCenter = 1, alRight  = 2;   //水平对齐方式
var alTop  = 0, alMiddle = 1, alBottom = 2;   //垂直对齐方式

var f = new Array();
var cnt = 0;

function floatDiv(objId, align, vAlign, x, y, smooth)
{
    /*浮动块对象
      数据结构:
        objId: 对象ID
        align: 水平对齐方式,枚举型
        vAlign:垂直对齐方式,枚举型内容
        x, y:  xy座标,整型
        smooth:平滑移动,布尔型
    */
    this.objId  = objId;
    this.align  = align;
    this.vAlign = vAlign;
    this.x = x;
    this.y = y;
    this.smooth = smooth;
}

function addDiv(objId, align, vAlign, x, y, smooth)
{   //添加浮动块
    f[cnt++] = new floatDiv(objId, align, vAlign, x, y, smooth);
}

function floatMove()
{   //重新定位各块位置
    var objX, objY;
    if (document.all)
    {
        var d = document.body;
//status = "scrollLeft:"+f[0].objId.style.pixelTop+"| offsetWidth:"+d.offsetWidth;
        for (var i=0; i<f.length; i++)
        {
            switch (f[i].align)
            {
                case alLeft  : objX = d.scrollLeft + f[i].x; break;
                case alCenter: objX = d.scrollLeft + Math.ceil((d.offsetWidth - f[i].objId.offsetWidth)/2) + f[i].x; break;
                case alRight : objX = d.scrollLeft + d.offsetWidth - f[i].x - f[i].objId.offsetWidth - 20; break; //减滚动条20
            }
            switch (f[i].vAlign)
            {
                case alTop   : objY = d.scrollTop + f[i].y; break;
                case alMiddle: objY = d.scrollTop + Math.ceil((d.offsetHeight - f[i].objId.offsetHeight)/2) + f[i].y; break;
                case alBottom: objY = d.scrollTop + d.offsetHeight - f[i].y - f[i].objId.offsetHeight; break;
            }
            if (f[i].smooth) smoothMove(f[i].objId, objX, objY);
            else
            {
                f[i].objId.style.pixelLeft = objX;
                f[i].objId.style.pixelTop  = objY;
            }
        }
    }
   
    if (document.layers)
    {
        for (var i=0; i<f.length; i++)
        {
            var objId = f[i].objId;
            switch (f[i].align)
            {
                case alLeft  : objX = pageXOffset + f[i].x; break;
                case alCenter: objX = pageXOffset + Math.ceil((window.innerWidth-objId.width)/2) + f[i].x; break;
                case alRight : objX = pageXOffset + window.innerWidth - f[i].x - document.objId.width; break;
            }
            switch (f[i].vAlign)
            {
                case alTop   : objY = pageYOffset + f[i].y; break;
                case alMiddle: objY = pageYOffset + Math.ceil(window.innerHeight/2) + f[i].y; break;
                case alBottom: objY = pageYOffset + window.innerHeight - f[i].y - document.objId.height; break;
            }
            if (t[i].smooth) smoothMove(f[i].objId, objX, objY);
            else
            {
                document.objId.left = objX;
                document.objId.top  = objY;
            }
        }
    }
   
    setTimeout("floatMove();",50);
}

function smoothMove(obj, x, y)
{
    var percent;
    if (document.all)
    {
        percent = .1 * (x - obj.style.pixelLeft);
        if (percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent);
        obj.style.pixelLeft += percent;
       
        percent = .1 * (y - obj.style.pixelTop);
        if (percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent);
        obj.style.pixelTop += percent;
    }
    if (document.layers)
    {
        percent = .1 * (x - document.objId.left);
        if (percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent);
        document.objId.left += percent;
       
        percent = .1 * (y - document.objId.top);
        if (percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent);
        document.objId.top += percent;
    }
}


setTimeout("floatMove();",50);


调用例子:

<script language="javascript" src="lib/floatdiv.js"></script>
<script language="javascript">
if (navigator.appName == "Netscape")
{
    document.write("<layer id=ad_hr top=300 width=100 height=120><a href=http://www.fpc.org.cn/hr/040522.htm target=_blank><img src='ad/hr40522.gif' width=120 height=180 border=0></a></layer>");
}
else
{
    document.write("<div id=ad_hr style='position: absolute;width:120;top:300;left:5;visibility: visible;z-index: 1'><a href=http://www.fpc.org.cn/hr/040522.htm target=_blank><img src='ad/hr40522.gif' width=120 height=180 border=0></a></div>");
}
addDiv(ad_hr, alRight, alTop, 0, 30, true);
</script>


[原创]自己定义的简单方法验证表单数据
方法很简单,先是定义好要验证的数组比如:
check_array[0]= new Array(title,留言主题不能为空!);
然后判断,错误的就提示定义的内容,代码如下:

<script language="javascript">
//表单验证程序;
 
  //定义获取表单元素;
  function $()
  {
    var elements = new Array();
 
    for (var i = 0; i < arguments.length; i++) {
   var element = arguments[i];
   if (typeof element == 'string')
     element = document.getElementById(element);
 
   if (arguments.length == 1)
     return element;
 
   elements.push(element);
    }
 
    return elements;
  }


function checkform()
{
  //定义要验证的表单数组;
  var check_array=new Array();
  check_array[0]= new Array("title","留言主题不能为空!");
  check_array[1]= new Array("name","姓名不能为空!");
  check_array[2]= new Array("email","电子邮件不能为空!");
  check_array[3]= new Array("phone","电话不能为空!");
  check_array[4]= new Array("note","留言内容不能为空!");
  
  //验证定义表单是否为空;
  for(var i=0;i<check_array.length;i++)
  {
   if($(check_array[i][0]).value=="")
   {
    alert(check_array[i][1]);
    $(check_array[i][0]).focus();
    return false;
   }
  }
 
}
</script>

几个表单验证的
function checkMail(obj,error)
{
    if (obj == null)
return "NULL";
    if (obj.value == "")
return "EMPTY";
    var filter  = /^([a-zA-Z0-9_/./-])+/@(([a-zA-Z0-9/-])+/.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(obj.value))
return true;
    else
alert(error);
return false;
}

function verifyDottedIP(cntrl,errmsg1,errmsg2,flag)
{
    ip_str = cntrl.value;


if (ip_str == "") {
if (flag == 1){

alert(errmsg1);
cntrl.select();
    return false;
}
           return true;
}else{
varval = 0;
vari = index = 0;

while (index < ip_str.lastIndexOf(".")){
k = index;
index = ip_str.indexOf(".", index);
val = toNumber(ip_str, k, index);

if (val < 0 || val > 255)
break;
i++; index++;
}

if (i == 3){
if (index == ip_str.length){
i = 2;
} else {
val = toNumber(ip_str,index, ip_str.length);
if (val < 0 || val > 255) i = 2;
}
}

if (i != 3) {
alert(errmsg2);
cntrl.select();
return false;
}
}
return true;
}


function verifyport(cntrl,errmsg1,errmsg2,flag)
    {
    varval = 0;

    port_str = cntrl.value;
if (port_str == "") {
if (flag == 1){

alert(errmsg1);
cntrl.select();
    return false;
}}
    val = toNumber(port_str, 0, port_str.length);

    if (val < 0 || val > 65535)
    {

       

alert(errmsg2);
cntrl.select();
    return false;
    }
    else
    {
    return true;
    }
    }


function checkname(field,err_blank,err_space,err_invalid)
{
if (field.value.indexOf(" ") >=0)
   {
alert(err_space);
field.focus();
field.select();
return false;
}

left_trim(field);
right_trim(field);


if (field.value =="" | field.value == null)
{

alert(err_blank);
field.focus();
field.select();
return false;
}


if (checkOtherChar(field.value, err_invalid)==false)
{
field.focus();
field.select();
return false;
}
if (isChinese(field.value)==true)
{
field.focus();
field.select();
return false;
}

return true;
}

function isChinese(inputStr){
      iLength = inputStr.length
      for (i = 0; i < iLength; i++)
        if (inputStr.charCodeAt(i) > 255){
            alert("Input error!");
            return true ;
           }
     return false ;
}


function left_trim(field)
{
var tmp_string = field.value;
while (''+tmp_string.charAt(0) == ' ')
tmp_string = tmp_string.substring(1,tmp_string.length);

field.value = tmp_string;

}

function right_trim(field)
{
var tmp_string = field.value;

while (''+tmp_string.charAt(tmp_string.length-1) == ' ')
tmp_string = tmp_string.substring(0,tmp_string.length-1);

field.value = tmp_string;
}

function  checkOtherChar(str,errmsg) {
       for(var loop_index=0; loop_index<str.length; loop_index++)
       {
         if(str.charAt(loop_index) == '~'
           ||str.charAt(loop_index) == '!'
           ||str.charAt(loop_index) == '@'
           ||str.charAt(loop_index) == '#'
           ||str.charAt(loop_index) == '$'
           ||str.charAt(loop_index) == '%'
           ||str.charAt(loop_index) == '^'
           ||str.charAt(loop_index) == '&'
           ||str.charAt(loop_index) == '*'
           ||str.charAt(loop_index) == '('
           ||str.charAt(loop_index) == ')'
           ||str.charAt(loop_index) == '+'
           ||str.charAt(loop_index) == '{'
           ||str.charAt(loop_index) == '}'
           ||str.charAt(loop_index) == '|'
           ||str.charAt(loop_index) == ':'
           ||str.charAt(loop_index) == '"'
           ||str.charAt(loop_index) == '<'
           ||str.charAt(loop_index) == '>'
           ||str.charAt(loop_index) == '?'
           ||str.charAt(loop_index) == '`'
           ||str.charAt(loop_index) == '='
           ||str.charAt(loop_index) == '['
           ||str.charAt(loop_index) == ']'
           ||str.charAt(loop_index) == '//'
           ||str.charAt(loop_index) == ';'
           ||str.charAt(loop_index) == '/''
           ||str.charAt(loop_index) == ','
           ||str.charAt(loop_index) == '.'
           ||str.charAt(loop_index) == '/')
          {
           
            alert(errmsg);
            return false;
      }
         }
      return true;
   }

function check_pwd_eq(element1,element2,errmsg)
{
if (element1.value == element2.value)
{
return true;
}
else
{
alert(errmsg);
element1.select();
return false;
}
}

function check_pwd(field,errmsg1)
{

  if (field.value == "") {
      alert(errmsg1);
      field.focus();
      return false;
}
 
  


  return true;
}

function verifynum(cntrl,errmsg3,flag,errmsg1,errmsg2,from,to)
    {
    varval = 0;
    num_str = cntrl.value;
   if (num_str.indexOf(" ") >=0)
   {
alert(errmsg3);
cntrl.focus();
cntrl.select();
return false;
}

if (flag == 1) {
if (num_str == "") {
alert(errmsg1);
    return false;
}}
    val = toNumber(num_str, 0, num_str.length);

    if ((val < from || val > to) && (num_str != ""))
    {
alert(errmsg2);
    return false;
    }
    else
    {
    return true;
    }
    }

判断浏览器类型
<SCRIPT language=JavaScript>
if(navigator.appVersion.indexOf("MSIE 6.") != -1 ){
window.location = "111.htm" ;
}

</SCRIPT>

按钮背景图片替换
<input type=button style="background-image:url(a.gif)" value=test οnmοuseοver="this.style.backgroundImage='url(b.gif)'" οnmοuseοut='this.style.backgroundImage='url(a.gif)'' ID="Button1" NAME="Button1"/>

document.getElementById(id) 的最简化调用
/*--------------------------------------------------------------------------*/

/**
* 这个函数就 Ruby 了。我觉得它的作用主要有两个
* 1.  大概是 document.getElementById(id) 的最简化调用。
* 比如:$(aaa) 将返回 aaa 对象
* 2.  得到对象数组
* 比如: $(aaa,bbb) 返回一个包括id为aaa和bbb两个
input控件对象的数组。
*/
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}


<script language="Javascript">
//屏蔽鼠标右键、Ctrl+N、Shift+F10、F5刷新、退格键
//屏蔽F1帮助
function window.onhelp()
{
return false
}
function KeyDown()
{
//alert(event.keyCode);
//屏蔽 Alt+ 方向键 ← 屏蔽 Alt+ 方向键 →
if ((window.event.altKey)&&((window.event.keyCode==37)||(window.event.keyCode==39)))
{
//alert("不准你使用ALT+方向键前进或后退网页!");
event.returnValue=false;
}
//屏蔽退格删除键,屏蔽 F5 刷新键,Ctrl + R
if ((event.keyCode==116)||(event.ctrlKey && event.keyCode==82))
{
event.keyCode=0;
event.returnValue=false;
}

//屏蔽 Ctrl+n
if ((event.ctrlKey)&&(event.keyCode==78))
{
event.returnValue=false;
}

//屏蔽 shift+F10
if ((event.shiftKey)&&(event.keyCode==121))
{
event.returnValue=false;
}

//屏蔽 shift 加鼠标左键新开一网页
if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
{
window.event.returnValue = false;
}

//屏蔽Alt+F4
if ((window.event.altKey)&&(window.event.keyCode==115))
{
window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
return false;
}

//屏蔽Ctrl+A
if((event.ctrlKey)&&(event.keyCode==65))
{
return false;
}
return false;
}
document.οnkeydοwn=KeyDown;
</script>
39.在规定时间内跳转
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com">

40.网页是否被检索
<meta name="ROBOTS" content="属性值">
  其中属性值有以下一些:
  属性值为"all": 文件将被检索,且页上链接可被查询;
  属性值为"none": 文件不被检索,而且不查询页上的链接;
  属性值为"index": 文件将被检索;
  属性值为"follow": 查询页上的链接;
  属性值为"noindex": 文件不检索,但可被查询链接;
  属性值为"nofollow": 文件不被检索,但可查询页上的链接。

网页常用小技巧
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.51js.com/"">


12.删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>

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. 判断上一页的来源
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.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
}
document.οnkeydοwn=look;
</script>

18. 网页不会被缓存
<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">

19.怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:

1 solid #000000"></textarea>

20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>


21.让弹出窗口总是在最上面:
<body οnblur="this.focus();">

22.不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>

23.怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="logo.jpg" border=0></a>

24.电子邮件处理提交表单
<form name="form1" method="post" action="mailto:****@***.com" enctype="text/plain">
<input type=submit>
</form>

25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()

26.如何设定打开页面的大小
<body οnlοad="top.resizeTo(300,200);">
打开页面的位置<body οnlοad="top.moveBy(300,200);">

27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(logo.gif); background-repeat:no-repeat;

background-position:center;background-attachment: fixed}
</STYLE>

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

29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

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

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

32. 日期减去天数等于第二个日期
<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>

33. 选择了哪一个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>

34.脚本永不出错
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
</SCRIPT>

35.ENTER键可以让光标移到下一个输入框
<input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">

36. 检测某个网站的链接速度:
把如下代码加入<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+"/"+Math.random()+" width=1 height=1
οnerrοr=auto("http://"+autourl+"")>")}
run()</script>

37. 各种样式的光标
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

external.m2_blocked()、external.m2_blocked()方法使用详解

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

  external.m2_blocked() (IE 4+ 支持)
  external.m2_blocked() (IE 5+ 支持)


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

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

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

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

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

test1.htm
====================
<script>
  var mxh1 = new Array("mxh","net_lover","孟子E章")
  var mxh2 = window.open("about:blank","window_mxh")
  // 向对话框传递数组
  window.external.m2_blocked("test2.htm",mxh1)
  // 向对话框传递window对象
  window.external.m2_blocked("test3.htm",mxh2)
</script>

test2.htm
====================
<script>
  var a = window.dialogArguments
  alert("您传递的参数为:" + a)
</script>

test3.htm
====================
<script>
  var a = window.dialogArguments
  alert("您传递的参数为window对象,名称:" + a.name)
</script>

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

test4.htm
===================
<script>
  var a = window.external.m2_blocked("test5.htm")
  for(i=0;i<a.length;i++) alert(a[i])
</script>

test5.htm
===================
<script>
function sendTo()
{
  var a=new Array("a","b")
  window.returnValue = a
  window.close()
}
</script>
<body>
<form>
  <input value="返回" type=button οnclick="sendTo()">
</form>

常见问题:
1,如何在模态对话框中进行提交而不新开窗口?
如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以
制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子,

test6.htm
===================
<script>
  window.external.m2_blocked("test7.htm")
</script>

test7.htm
===================
if(window.location.search) alert(window.location.search)
<frameset rows="0,*">
  <frame src="about:blank">
  <frame src="test8.htm">
</frameset>

test8.htm
===================
<form target="_self" method="get">
<input name=txt value="test">
<input type=submit>
</form>
<script>
if(window.location.search) alert(window.location.search)
</script>
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向
对话框传递参数吗?
答案是不能。但在frame里是可以的。
file://屏蔽 F5 刷新键


function document.onkeydown()
{
    var k = window.event.keyCode;
    if (k == 116)                   file://屏蔽 F5 刷新键
    {
        window.event.keyCode    = 0;
        window.event.returnValue= false;
    }
}


<script language="javascript">
file://屏蔽鼠标右键、Ctrl+N、Shift+F10、F5刷新、退格键
file://屏蔽F1帮助
function window.onhelp()
{
   return false
}
function KeyDown()
{
  file://alert(event.keyCode);
   file://屏蔽 Alt+ 方向键 ← 屏蔽 Alt+ 方向键 →
  if ((window.event.altKey)&&((window.event.keyCode==37)||
(window.event.keyCode==39)))
  {  
     file://alert("不准你使用ALT+方向键前进或后退网页!");
     event.returnValue=false;
  }
  file://屏蔽退格删除键,屏蔽 F5 刷新键,Ctrl + R
  if ((event.keyCode==116)||(event.ctrlKey && event.keyCode==82))
  { 
     event.keyCode=0;
     event.returnValue=false;
  } 
  
  file://屏蔽 Ctrl+n
  if ((event.ctrlKey)&&(event.keyCode==78))
  {  
     event.returnValue=false;
  }
  
  file://屏蔽 shift+F10
  if ((event.shiftKey)&&(event.keyCode==121))
  { 
     event.returnValue=false;
  }
  
  file://屏蔽 shift 加鼠标左键新开一网页
  if (window.event.srcElement.tagName == "A" && window.event.shiftKey) 
  {
    window.event.returnValue = false;
  }
      
   file://屏蔽Alt+F4
  if ((window.event.altKey)&&(window.event.keyCode==115))
  {
      window.external.m2_blocked("about:blank","","dialogWidth:1px;dialogheight:1px");
      return false;
  }
  
  file://屏蔽Ctrl+A
  if((event.ctrlKey)&&(event.keyCode==65))
  {
   return false;
  }
    
}
</script>
</body>
</HTML> 

一些搜集的WEB技术小窍门
如何在HTML文件中包含某个HTML文件?
方法一:
在html 页面 include 其它页面
<IE:Download ID="oDownload" STYLE="behavior:url(#default#download)" />
<body οnlοad="oDownload.startDownload('tt.htm',onDownloadDone)">
<span id=showImport></span>
<script language=javascript><!--
function onDownloadDone(downDate)
{
  document.all.showImport.innerHTML=downDate; //这种方法被讨论出来是最好的
}
//--></script>
方法二:
<object data="vister/count.asp" type="text/x-scriptlet" width="158" height="50" align="top" marginWidth=0 marginHeight

=0>
</object>
----------------------------------------------------------------------------------------------------------------------------

-------------------------------------------
TextBox里加入图片?
<TEXTAREA rows=8 cols=20 id=textarea1 >
大家好!
这里是一个图片
</TEXTAREA>

<SCRIPT LANGUAGE=javascript>
<!--
var img = document.createElement("IMG");
img.src = "http://community.csdn.net/images/csdn.gif";
window.textarea1.appendChild(img);
//-->
</SCRIPT>


全屏技术:
真正的全屏页面解决之道!(全代码) 
真正全屏解决之道: 
1.htm 
<html> 
<head> 
<title>无标题文档</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 

<body οnlοad="window.open('fullscreen.htm','','fullscreen=1,scroll=no');"> 
</body> 
</html> 


fullscreen.htm 
<html> 
<head> 
<title>无标题文档</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<script language="javascript1.2">  
<!--  
function opensmallwin(myurl){  
var w2=300;//想弹出窗口的宽度  
var h2=100;//想弹出窗口的高度  
var w3=window.screen.width/2-w2/2;  
var h3=window.screen.height/2-h2/2;  
window.open(myurl,'small','toolbar=no,location=no,directories=no,status=no,menubar=no,
scrollbars=no,resizable=0,width='+ w2 +',height='+ h2 +',left='+ w3 +',top='+ h3 +'');  
}  
file://-->  

<!-- 
function modelesswin(url,mwidth,mheight){ 
  if (document.all&&window.print) 
    eval('window.external.m2_blocked(url,"","help:0;resizable:0;status:0;center:1;
scroll:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px")')  
  else 
    eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,
scrollbars=1")') 
  } 
file://--> 

</script>  
</head> 

<body  scroll="no"> 
<div align="right"><a href="javascript:" οnclick="window.close()">关闭
</a> </div> 
<p></P> 
<div align="right"><a href="javascript:" οnclick="opensmallwin('login.htm')">登录
</a> </div> 

<p></P> 
<div align="center"><a href="javascript:"
οnclick="modelesswin('login.htm',300,160)">用模态登录窗口</a> </div> 
</body> 
</html> 


login.htm 
<html> 
<head> 
<title>用户登录</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

<style type="text/css"> 
<!-- 
body { 
   background-color: #EAEAEA; 
   font-family: Arial, Helvetica, sans-serif; 
   font-size: 12px; 
   line-height: 24px; 
   color: #336699; 

input.boxline { 
   width: 100px; 
   font-family: "Times New Roman", "Times", "serif"; 
   font-size: 9pt; 
   border: 1px solid #669999; 
   height: 18px; 

input.whiteline {   
   font-size: 12px; border: 1px #999999 solid 

--> 
</style></head> 
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> 
<table width="100%" height="100%" border="0" cellpadding="0"
cellspacing="14" bgcolor="#CCCCCC"> 
  <tr valign="top"> 
    <td width="10%" nowrap  align="right"><b>用户名:</b></td> 
    <td width="90%"><input name="textfield1" type="text" size="25"
class="whiteline"></td> 
  </tr> 
  <tr valign="top"> 
    <td nowrap align="right"><b>密 码:</b></td> 
    <td><input name="textfield12" type="password" size="25"
class="whiteline"></td> 
  </tr> 
  <tr valign="top"> 
    <td> </td> 
    <td><input type="submit" name="Submit" value="登  录"
class="boxline"></td> 
  </tr> 
</table> 
</body> 
</html> 


自动关掉原窗口: 


<html> 
<head> 
<title>无标题文档</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<style type="text/css"> 
<!-- 
body { 
   margin-left: 0px; 
   margin-top: 0px; 
   margin-right: 0px; 
   margin-bottom: 0px; 

--> 
</style> 
</head> 

<body οnlοad="window.open('fullscreen.htm','','fullscreen=1,scroll=no');
window.opener=null;window.close()"> 
<input type=button value=关闭 οnclick="window.opener=null;window.close()">  
<!-- IE5.5+ 不会有弹出提示 -->  

<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2
height=0 width=0></OBJECT>  
<input type=button value=关闭窗口 οnclick=document.all.WebBrowser.ExecWB(45,1)>  
</body> 
</html> 

关键是在onload事件中加入: 
window.opener=null;window.close() 


预读图片:
<SCRIPT LANGUAGE="javascript">

<!-- This script and many more are available free online at -->
<!-- The javascript Source!! <a href=http://javascript.internet.com
target=_blank>http://javascript.internet.com -->

<!-- Begin

image1 = new Image();
image1.src = "image1.gif";

image2 = new Image();
image2.src = "image2.gif";

// End -->
</script>
关于两个网页刷新交互的问题 
JS处理方法: 

a.htm 

<a href="b.htm" target=blank>发表留言</a> 
<script> 
alert("wwwwwwwwwwwwwwwwwwwwwwwwww"); 
</script> 

b.htm 

<script language="javascript"> 
file://window.opener.location.reload();刷新父窗口 
file://window.opener.location="2.htm"//重定向父窗口到2.htm页 
function closewindow() 

window.opener.location.reload(); 
self.close(); 
window.opener.document.write("sssssssssssssssssss"); 

</script> 
<a href="b.htm" target=blank οnclick="closewindow();">关闭</a> 

后台处理方法: 

private btnForSubmit(Object sender,EventArgs e) 

............. 
Response.Write("<script>window.opener.document.execCommand('refresh');
window.opener='';window.close();</script>"); 
file://string str="<script>window.opener.document.execCommand('refresh');
window.opener='';window.close();</script>"; 
file://this.RegisterStartupScript("mycode",str);

BS开发中常用的javascript技术


4、事件类
  4.1 屏蔽右键
      在body标签里加上οncοntextmenu=self.event.returnValue=false  
  4.2 屏蔽所有功能键

  4.3 --> 和<-- F5 F11,F9,F1

  4.4 屏蔽组合键ctrl+N

<script language=javascript>
function KeyDown(){   
  if ((window.event.altKey)&&
      ((window.event.keyCode==37)||   file://屏蔽 Alt+ 方向键 ←
       (window.event.keyCode==39))){  file://屏蔽 Alt+ 方向键 →
     alert("不准你使用ALT+方向键前进或后退网页!");
     event.returnValue=false;
     }
  if ((event.keyCode==8)||            file://屏蔽退格删除键
      (event.keyCode==116)){          file://屏蔽 F5 刷新键
     event.keyCode=0;
     event.returnValue=false;
     }
  if ((event.ctrlKey)&&(event.keyCode==78)){   file://屏蔽 Ctrl+n
     event.returnValue=false;
     }
  if ((event.shiftKey)&&(event.keyCode==121)){ file://屏蔽 shift+F10
     event.returnValue=false;
     }
  if (event.keyCode==122){ file://屏蔽 F11
     event.returnValue=false;
     }
  }
只要知道keyCode即可屏蔽所有功能键


一、验证类
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])">

不断地清空剪贴板:
<body οnlοad="setInterval('clipboardData.setData(/'Text/',/'/')',100)">


<script language="javascript" type="text/javascript">
file://先复制一样东西,或者文本或者图片
if(clipboardData.getData("Text")||clipboardData.getData("HTML")||
clipboardData.getData("URL"))
{
alert("有效行为");
}
</script>
//保护页面不被打印、复制,禁止Mouse各键
<SCRIPT LANGUAGE="JavaScript">wside=(window.sidebar)?true:false;
var w456=false;
function nrcie(){return false;};
function nrcns(e) { if(e.which==2||e.which==3) return false;
}if(document.layers) { document.captureEvents(Event.MOUSEDOWN);
document.οnmοusedοwn=nrcns;
}document.οncοntextmenu=nrcie;
document.onselectstart=new Function("return false");
function nsel(){if((document.layers)||wside){var qwe= document.getSelection();
if(qwe!="") {window.find(" ")};
setTimeout("nsel()",20);
}}nsel();
function ccd(){clipboardData.clearData();
};
function cce(){ccd();
setTimeout("cce()",30);
};
cce();
</SCRIPT>

<style media='print'>body {display:none}</style>


页面上关于定位和长度的几个属性(原创)
首先是页面定位,用CSS

position,这个下面有两个属性absolute(绝对定位)和relative(相对定位),绝对定位是指相对浏览器的位置地位,而相对定位和其他元素的位置有关系,位置不固定。

以下可以看一个例子,看了之后就明白了

abc<br/>

<div style="position:relative;left:1;top:100;color:green">absolute positioning with the current element<br/><span style="position:absolute;left:0;top:0;">aaaaaaaaa</span></div>

<div style="color:red">absolute positioning with the body<br/><span style="position:absolute;left:0;top:0">bbbbbbbbbbb</span></div>

<div style="color:blue">relative positioning with the body<span style="position:relative;left:-12;top:0">ccccccccccc</span></div>

而有些CSS属性有时候需用position:absolute 之后才有效,比如裁切的那个CSS等

接下来是一些元素的位置问题

就拿宽度来说

scrollwidth,clientwidth,offsetwidth

这些属性都可以用在<body>,<div>等元素

第一个是包括滚动条所有在内的长度,第二个和第三个差不多,第三个是包括工具栏,菜单栏,状态栏,滚动条宽度等在内的宽度,而第二个是去掉一些cellpadding等一些的额外的宽度。高度同这个,元素分别为

scrollheight,clientheight,offsetheight

接下来是鼠标的位置

可以用event.clientX + document.body.scrollLeft得到横的绝对位置

这里面event.clientX 是相对屏幕的位置,而document.body.scrollLeft是网页被横向滚动条卷进去的宽度。

这里可以看一个例子,代码如下 把这个方法写在<body>的onmousemove中,一目了然了。

<SCRIPT>
<!--
function statusreport() {

  var tempx = event.clientX + document.body.scrollLeft;
  var tempy = event.clientY + document.body.scrollTop;
 
  window.status='在整个页面中的X, Y坐标 : ('+tempx+', '+tempy+') ; 在当前窗口中的X, Y坐标 : ( '+event.clientX+', '+event.clientY +')';
}
//-->

</SCRIPT>

大梅的思路,我把他用到了判断数据提交的时候有没有重复记录上了
<form name=form1>
<input name=a123>
<input name=b123>
<input name=c123>
<input name=d123>
<input name=e123>
<input name=f123 type=button οnclick=check()>
</form>
<SCRIPT LANGUAGE="JavaScript">
<!--
Array.prototype.unique = function()
{
  var a = {}; for(var i=0; i<this.length; i++)
  {
    if(typeof a[this[i]] == "undefined")
      a[this[i]] = 1;
  }
  this.length = 0;
  for(var i in a)
    this[this.length] = i;
  return this;
}
function check()
{
var ArrText = [document.form1.a123.value,document.form1.b123.value,document.form1.c123.value,document.form1.d123.value,document.form1.e123.value];
OldArr=ArrText.length;
NewArr=ArrText.unique().length;
if(OldArr==NewArr)
{
alert("无重复记录");
}
else
{
alert("有重复记录");
}
}
//-->
</SCRIPT>

Date.prototype.Format = function(format)
{
  var o = {
    "M+" : this.getMonth()+1, //month
    "d+" : this.getDate(),    //day
    "h+" : this.getHours(),   //hour
    "m+" : this.getMinutes(), //minute
    "s+" : this.getSeconds(), //second
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
    "S" : this.getMilliseconds() //millisecond
  }
  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
    (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,
      RegExp.$1.length==1 ? o[k] :
        ("00"+ o[k]).substr((""+ o[k]).length));
  return format;
};

示例:
alert(new Date().Format("yyyy年MM月dd日"));
alert(new Date().Format("MM/dd/yyyy"));
alert(new Date().Format("yyyyMMdd"));
alert(new Date().Format("yyyy-MM-dd hh:mm:ss"));

http://jkisjk.vip.sina.com/html/
空间已经过期
代码无法更新
示例仅提供思路:


常用前台JS函数

自动加上验证事件及日期按钮(htc方式)

自动加上验证事件及日期按钮(js方式)

Ctrl + 鼠标 = 选中(20050214)

固定Div(20050214)

可以盖住select的div(20041216)

可输入下拉框(20041126)(相似高亮显示,不相似移除)

可输入下拉框(20041126)(相似高亮显示,不相似不移除)

改变table的列宽(20041103)

可用鼠标移动和改变大小的table(20041029)

用鼠标移动TR(20050107)

固定Table首行(20041123)

固定Table首行首列(20041123)

Main Content Div

从服务器端取值并回填到页面

动态明细示例

多功能multiple-update

一个简单的IFRAME框架

调用客户端发邮件程序

读取客户端文件

一级选择左右移动及排库

二级选择左右移动

提交到特定大小的窗口

忠实显示Text内容(不同于Pre标签)

自动关闭Alert对话框

年月日选择


提交到特定大小的窗口

忠实显示Text内容(不同于Pre标签)

自动关闭Alert对话框

年月日选择


JS 对 cookie 操作
function setCookie(name,value)
{
  var Days = 30; //此 cookie 将被保存 30 天
  var exp  = new Date();    //new Date("December 31, 9998");
  exp.setTime(exp.getTime() + Days*24*60*60*1000);
  document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(name)
{
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval=getCookie(name);
  if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}


<script type="text/javascript">
var _st = window.setTimeout;

/*重载window.setTimeout函数,引用的函数可以带参数*/
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
  var argu = Array.prototype.slice.call(arguments,2);
alert(typeof(argu));
  var f = (function(){ fRef.apply(null, argu); });
  return _st(f, mDelay);
}
return _st(fRef,mDelay);
}

function test(x){
alert(x);
}
window.setTimeout(test,3000,'fason');
</script>


<script language=javascript>
<!--
/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>=5)
function window.confirm(str)
{
    str=str.replace(//'/g, "'&chr(39)&'").replace(//r/n|/n|/r/g, "'&VBCrLf&'");
    execScript("n = msgbox('"+ str +"', 257, '自定的的 confirm')", "vbscript");
    return(n==1);
}
@end @*/
alert(confirm('sure?'));
// -->
</script>


//两端去空格函数
function trim(str) {
return str.replace(/(^/s*)|(/s*$)/g,"");
}


<script>
//为Number增加length方法
Number.prototype.length = function()
{
return String(this).length;
}

alert((11).length())
</script>

Ms XmlDom 异步装载Xml文件
放在这里,算作是资源备份吧。

<script>
var xmldoc;
function Load(){
  xmldoc = new ActiveXObject("Msxml2.DOMDocument");
  xmldoc.onreadystatechange = CheckState;
  xmldoc.resolveExternals = false;
  xmldoc.load(URL.value);
}
function CheckState(){
  var state = xmldoc.readyState;
  RESULTS.innerHTML += "加载状态 = " + state + "<BR>"
  if (state == 4){
    var err = xmldoc.parseError;
    if (err.errorCode != 0)
      RESULTS.innerHTML += err.reason +  "<BR>"
    else
    {
     RESULTS.innerHTML += "加载成功。" +  "<BR>"
     alert(xmldoc.xml)
     }
  }
}
</script>
URL: <input type=text size=60 id=URL value="http://dotnet.aspx.cc/Rss.aspx">
<input type=button value="正在XML" οnclick="Load()">
<div id=RESULTS style="color:red; font-weight:bold;"></div></script>


//带中文字符串长度,一个中文字长度为2
String.prototype.lenB = function(){return this.replace(/[^/x00-/xff]/g,"**").length;}
document.all.tes1.value.lenB();

预判断一下链接URL是否可用

<script language="javascript">
function getURL(url)
{
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.open("GET",url,false);
    xmlhttp.send();
    if (xmlhttp.readyState==4)
      alert((xmlhttp.Status==200)?"存在":"不存在");
}
//user like this:
getURL("http://localhost/1.asp")
</script>


//将数字转换成三位逗号分隔的样式
function formatNum(s)
{
  if(!/^(/+|-)?/d+(/./d+)?$/.test(num)){alert("wrong!"); return num;}
  var re = new RegExp().compile("(//d)(//d{3})(,|//.|$)");
  num += ""; while(re.test(num))
    num = num.replace(re, "$1,$2$3")
  return num;
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));

格式化日期:yyyy-m-d to yyyy-mm-dd

<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "2005-3-2"; //2005-03-02
var str = "2005-3-22"; //2005-03-02
str = str.replace(/(/D)(/d)(?=/D|$)/g, "$10$2");
alert(str);
//-->
</SCRIPT>


表格中的行删除功能,用checkbox选择的
<script language="JavaScript">
<!--
var curRow=null;
function selectRow(tr1){
if(curRow)
curRow.bgColor="#FFFFFF";
tr1.bgColor="e7e7e7";
curRow=tr1;
}
function delTr(){
var chks=document.getElementsByName("chkDelete");
var tb=document.getElementById("tbContent");
for(var i=chks.length-1;i>=0;i--){
if(chks[i].checked){
tb.deleteRow(i);
}
}
}
//-->
</script>
<div align="center" style="overflow:auto; width:400; height:300px " id="divVector">
<table id="tbContent" border=1 width="300">
<script language="JavaScript">
<!--
for(var i=0;i<25;i++)
document.write('<tr height=20 οnmοuseοver="selectRow(this)"><td algin="center"

width="20%"><input type="checkbox" name="chkDelete"></td><td width="80%"

align="center">'+i+'</td></tr>');
//-->
</script>
</table>
</div>
<input type="button" value=" 删除选中的行 " οnclick="delTr()">


yyyy-mm-dd格式日期完整校验加提示
<script language="JavaScript">
<!--
function CheckDate(strDate){
var reg=/^(/d{4})([-])(/d{2})([-])(/d{2})/;
if(!reg.test(strDate)){
alert("日期格式不正确!/n正确格式为:2004-01-01");
return false;
}
var ss=strDate.split("-");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间

!"); return false}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!");

return false}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1

-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var date= new Date(year,month,0);
return date.getDate();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
alert(CheckDate("2007-02-29"));
//-->
</script>


<script language="JavaScript">
<!--
/* 函数名称 : dateAfterDays
* 函数功能 : 返回与某日期相距N天(N个24小时)的日期
* 函数参数 : num number类型 可以为正负整数或者浮点数
* 函数返回 : 新的日期
* 调用方法 : dateObject.dateAfterDays(num);
*/
Date.prototype.dateAfterDays=function(num){
if(typeof(num)!="number") throw new Error("Date(num)参数为数值类型.",-1);
var date = this.valueOf();
date += num*24*3600*1000;
return new Date(date);
}
var dd= new Date();
alert(dd.dateAfterDays(1.5));
//-->
</script>


类似CSDN感兴趣社区配置页面中的checkbox选择的功能
<script language="JavaScript">
<!--
function chkClk(obj){
var chks=document.getElementsByName(obj.name);
if(obj.flag=="main"){
for(var i=1;i<chks.length;i++)
chks[i].checked=obj.checked;
}
else{
for(var i=1;i<chks.length;i++)
if(chks[i].checked==false){
chks[0].checked=false;
break;
}
else{
if(i==chks.length-1) chks[0].checked=true;
}
}
}
//-->
</script>

<input type="checkbox" οnclick="chkClk(this)" name="type1" flag="main">typetext
<li><input type="checkbox" οnclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" οnclick="chkClk(this)" name="type1">typetext</li>
<br/><br/>
<input type="checkbox" οnclick="chkClk(this)" name="type2" flag="main">typetext
<li><input type="checkbox" οnclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" οnclick="chkClk(this)" name="type2">typetext</li>


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值