javascript常用技巧
1.oncontextmenu="window.event.returnValue=false"将彻底屏蔽鼠标右键
<tableborderoncontextmenu=return(false)><td>no</table>可用于Table
2.<bodyonselectstart="returnfalse">取消选取、防止复制
3.onpaste="returnfalse"不准粘贴
4.oncopy="returnfalse;"oncut="returnfalse;"防止复制
5.<linkrel="ShortcutIcon"href="favicon.ico">IE地址栏前换成自己的图标
6.<linkrel="Bookmark"href="favicon.ico">可以在收藏夹中显示出你的图标
7.<inputstyle="ime-mode:disabled">关闭输入法
8.永远都会带着框架
<scriptlanguage="JavaScript"><!--
if(window==top)top.location.href="frames.htm";//frames.htm为框架网页
//--></script>
9.防止被人frame
<SCRIPTLANGUAGE=JAVASCRIPT><!--
if(top.location!=self.location)top.location=self.location;
//--></SCRIPT>
10.网页将不能被另存为
<noscript><iframesrc=*.html></iframe></noscript>
11.<inputtype=buttonvalue=查看网页源代码
onclick="window.location="view-source:"+"http://www.pconline.com.cn"">
12.删除时确认
<ahref="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除
&page=1"">删除</a>
13.取得控件的绝对位置
//Javascript
<scriptlanguage="Javascript">
functiongetIE(e){
vart=e.offsetTop;
varl=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<scriptlanguage="VBScript"><!--
functiongetIE()
dimt,l,a,b
seta=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
whilea.tagName<>"BODY"
seta=a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox"top="&t&chr(13)&"left="&l,64,"得到控件的位置"
endfunction
--></script>
14.光标是停在文本框文字的最后
<scriptlanguage="javascript">
functioncc()
{
vare=event.srcElement;
varr=e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<inputtype=textname=text1value="123"onfocus="cc()">
15.判断上一页的来源
javascript:
document.referrer
16.最小化、最大化、关闭窗口
<objectid=hh1classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<paramname="Command"value="Minimize"></object>
<objectid=hh2classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<paramname="Command"value="Maximize"></object>
<OBJECTid=hh3classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAMname="Command"VALUE="Close"></OBJECT>
<inputtype=buttonvalue=最小化onclick=hh1.Click()>
<inputtype=buttonvalue=最大化onclick=hh2.Click()>
<inputtype=buttonvalue=关闭onclick=hh3.Click()>
本例适用于IE
17.屏蔽功能键Shift,Alt,Ctrl
<script>
functionlook(){
if(event.shiftKey)
alert("禁止按Shift键!");//可以换成ALTCTRL
}
document.onkeydown=look;
</script>
18.网页不会被缓存
<METAHTTP-EQUIV="pragma"CONTENT="no-cache">
<METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache,must-revalidate">
<METAHTTP-EQUIV="expires"CONTENT="Wed,26Feb199708:21:57GMT">
或者<METAHTTP-EQUIV="expires"CONTENT="0">
19.怎样让表单没有凹凸感?
<inputtype=textstyle="border:1solid#000000">
或
<inputtype=textstyle="border-left:none;border-right:none;border-top:none;border-bottom:
1solid#000000"></textarea>
20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>
21.让弹出窗口总是在最上面:
<bodyonblur="this.focus();">
22.不要滚动条?
让竖条没有:
<bodystyle="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<bodystyle="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<bodyscroll="no">
</body>
23.怎样去掉图片链接点击后,图片周围的虚线?
<ahref="#"onFocus="this.blur()"><imgsrc="logo.jpg"border=0></a>
24.电子邮件处理提交表单
<formname="form1"method="post"action="mailto:****@***.com"enctype="text/plain">
<inputtype=submit>
</form>
25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()
26.如何设定打开页面的大小
<bodyonload="top.resizeTo(300,200);">
打开页面的位置<bodyonload="top.moveBy(300,200);">
27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(logo.gif);background-repeat:no-repeat;
background-position:center;background-attachment:fixed}
</STYLE>
28.检查一段字符串是否全由数字组成
<scriptlanguage="Javascript"><!--
functioncheckNum(str){returnstr.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("含有汉字");
elsealert("全是字符");
31.TEXTAREA自适应文字行数的多少
<textarearows=1name=s1cols=27onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>
32.日期减去天数等于第二个日期
<scriptlanguage=Javascript>
functioncc(dd,dadd)
{
//可以加上错误处理
vara=newDate(dd)
a=a.valueOf()
a=a-dadd*24*60*60*1000
a=newDate(a)
alert(a.getFullYear()+"年"+(a.getMonth()+1)+"月"+a.getDate()+"日")
}
cc("12/23/2002",2)
</script>
33.选择了哪一个Radio
<HTML><scriptlanguage="vbscript">
functioncheckme()
foreachobinradio1
ifob.checkedthenwindow.alertob.value
next
endfunction
</script><BODY>
<INPUTname="radio1"type="radio"value="style"checked>Style
<INPUTname="radio1"type="radio"value="barcode">Barcode
<INPUTtype="button"value="check"onclick="checkme()">
</BODY></HTML>
34.脚本永不出错
<SCRIPTLANGUAGE="JavaScript">
<!--Hide
functionkillErrors(){
returntrue;
}
window.onerror=killErrors;
//-->
</SCRIPT>
35.ENTER键可以让光标移到下一个输入框
<inputonkeydown="if(event.keyCode==13)event.keyCode=9">
36.检测某个网站的链接速度:
把如下代码加入<body>区域中:
<scriptlanguage=Javascript>
tim=1
setInterval("tim++",100)
b=1
varautourl=newArray()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"
functionbutt(){
document.write("<formname=autof>")
for(vari=1;i<autourl.length;i++)
document.write("<inputtype=textname=txt"+i+"size=10value=测试中……>=》<input
type=text
name=url"+i+"size=40>=》<inputtype=buttonvalue=GO
onclick=window.open(this.form.url"+i+".value)>
")
document.write("<inputtype=submitvalue=刷新></form>")
}
butt()
functionauto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="链接超时"}
else
{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}
b++
}
functionrun(){for(vari=1;i<autourl.length;i++)document.write("<img
src=http://"+autourl+"/"+Math.random()+"
width=1height=1
onerror=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
38.页面进入和退出的特效
进入页面<metahttp-equiv="Page-Enter"content="revealTrans(duration=x,transition=y)">
推出页面<metahttp-equiv="Page-Exit"content="revealTrans(duration=x,transition=y)">
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。
transition表示使用哪种特效,取值为
1-23:
0矩形缩小
1矩形扩大
2圆形缩小
3圆形扩大
4下到上刷新
5上到下刷新
6左到右刷新
7右到左刷新
8竖百叶窗
9横百叶窗
10错位横百叶窗
11错位竖百叶窗
12点扩散
13左右到中间刷新
14中间到左右刷新
15中间到上下
16上下到中间
17右下到左上
18右上到左下
19左上到右下
20左下到右上
21横条
22竖条
23以上22种随机选择一种
39.在规定时间内跳转
<METAhttp-equiv=V="REFRESH"content="5;URL=http://www.51js.com">
40.网页是否被检索
<metaname="ROBOTS"content="属性值">
其中属性值有以下一些:
属性值为"all":文件将被检索,且页上链接可被查询;
属性值为"none":文件不被检索,而且不查询页上的链接;
属性值为"index":文件将被检索;
属性值为"follow":查询页上的链接;
属性值为"noindex":文件不检索,但可被查询链接;
属性值为"nofollow":文件不被检索,但可查询页上的链接。
41.回车
用客户端脚本在页面添加document的onkeydown事件,让页面在接受到回车事件后,进行Tab
键的功能,即只要把event的keyCode由13变为9
Javascript代码如下:
<scriptlanguage="javascript"for="document"event="onkeydown">
<!--
if(event.keyCode==13)
event.keyCode=9;
-->
</script>
这样的处理方式,可以实现焦点往下移动,但对于按钮也起同样的作用,一般的客户在输入完
资料以后,跳到按钮后,最好能直接按"回车"进行数据的提交.因此,对上面的方法要进行一下
修改,应该对于"提交"按钮不进行焦点转移.而直接激活提交.
因此我对上面的代码进行了一个修改,即判断事件的"源",是否为提交按钮,代码如下:
<scriptlanguage="javascript"for="document"event="onkeydown">
<!--
if(event.keyCode==13&&event.srcElement.type!='button'&&
event.srcElement.type!='submit'&&event.srcElement.type!='reset'&&
event.srcElement.type!='textarea'&&event.srcElement.type!='')
event.keyCode=9;
-->
</script>
判断是否为button,是因为在HTML上会有type="button"
判断是否为submit,是因为HTML上会有type="submit"
判断是否为reset,是因为HTML上的"重置"应该要被执行
判断是否为空,是因为对于HTML上的"<a>链接"也应该被执行,这种情况发生的情况不多,可
以使用"tabindex=-1"的方式来取消链接获得焦点.