javascript小技巧&&JavaScript[对象.属性]集锦 [转载了多篇]
转自 piperzero博客文章 http://piperzero.iteye.com/blog/1010025
因为这两篇太安逸了,东西很多,很实用,所以转到我格子里!
总的来说,如果你要找js 的东西,而不看这两篇的话,肯定要多花好多时间!!哈哈!!
如果你找的javascript的东西的话,建议你 ctrl+F 直接在这个页上找,因为这里80%有你要找的,但是要让你挨着看的话,你就准备看完就去配眼镜!!
事件源对象
event.srcElement.tagName
event.srcElement.type
捕获释放
event.srcElement.setCapture();
event.srcElement.releaseCapture();
事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey
事件返回值
event.returnValue
鼠标位置
event.x
event.y
窗体活动元素
document.activeElement
绑定事件
document.captureEvents(Event.KEYDOWN);
访问窗体元素
document.all("txt").focus();
document.all("txt").select();
窗体命令
document.execCommand
窗体COOKIE
document.cookie
菜单事件
document.oncontextmenu
创建元素
document.createElement("SPAN");
根据鼠标获得元素:
document.elementFromPoint(event.x,event.y).tagName=="TD
document.elementFromPoint(event.x,event.y).appendChild(ms)
窗体图片
document.images[索引]
窗体事件绑定
document.onmousedown=scrollwindow;
元素
document.窗体.elements[索引]
对象绑定事件
document.all.xxx.detachEvent('onclick',a);
插件数目
navigator.plugins
取变量类型
typeof($js_libpath) == "undefined"
下拉框
下拉框.options[索引]
下拉框.options.length
查找对象
document.getElementsByName("r1");
document.getElementById(id);
定时
timer=setInterval('scrollwindow()',delay);
clearInterval(timer);
UNCODE编码
escape() ,unescape
父对象
obj.parentElement(dhtml)
obj.parentNode(dom)
交换表的行
TableID.moveRow(2,1)
替换CSS
document.all.csss.href = "a.css";
并排显示
display:inline
隐藏焦点
hidefocus=true
根据宽度换行
style="word-break:break-all"
自动刷新
<meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">
简单邮件
<a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy">
快速转到位置
obj.scrollIntoView(true)
锚
<a name="first">
<a href="#first">anchors</a>
网页传递参数
location.search();
可编辑
obj.contenteditable=true
执行菜单命令
obj.execCommand
双字节字符
/[^\x00-\xff]/
汉字
/[\u4e00-\u9fa5]/
让英文字符串超出表格宽度自动换行
word-wrap: break-word; word-break: break-all;
透明背景
<IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe>
获得style内容
obj.style.cssText
HTML标签
document.documentElement.innerHTML
第一个style标签
document.styleSheets[0]
style标签里的第一个样式
document.styleSheets[0].rules[0]
防止点击空链接时,页面往往重置到页首端。
<a href="javascript:function()">word</a>
上一网页源
asp:
request.servervariables("HTTP_REFERER")
javascript:
document.referrer
释放内存
CollectGarbage();
禁止右键
document.oncontextmenu = function() { return false;}
禁止保存
<noscript><iframe src="*.htm"></iframe></noscript>
禁止选取<bodyoncontextmenu="returnfalse"ondragstart="returnfalse"onselectstart="returnfalse"onselect="document.selection.empty()"oncopy="document.selection.empty()"onbeforecopy="returnfalse"onmouseup="document.selection.empty()>
禁止粘贴
<input type=text onpaste="return false">
地址栏图标
<link rel="Shortcut Icon" href="favicon.ico">
favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下
收藏栏图标
<link rel="Bookmark" href="favicon.ico">
查看源码
<input type=button value=查看网页源代码 onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
关闭输入法
<input style="ime-mode:disabled">
自动全选
<input type=text name=text1 value="123" onfocus="this.select()">
ENTER键可以让光标移到下一个输入框
<input onkeydown="if(event.keyCode==13)event.keyCode=9">
文本框的默认值
<input type=text value="123" onfocus="alert(this.defaultValue)">
title换行
obj.title = "123 sdfs "
获得时间所代表的微秒
var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime()
窗口是否关闭
win.closed
checkbox扁平
<input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"><br>
获取选中内容
document.selection.createRange().duplicate().text
自动完成功能
<input type=text autocomplete=on>打开该功能
<input type=text autocomplete=off>关闭该功能
窗口最大化
<body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)">
无关闭按钮IE
window.open("aa.htm", "meizz", "fullscreen=7");
统一编码/解码
alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe")))
encodeURIComponent对":"、"/"、";" 和 "?"也编码
表格行指示
<tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">
//各种尺寸
s+="\r\n网页可见区域宽:"+document.body.clientWidth;
s+="\r\n网页可见区域高:"+document.body.clientHeight;
s+="\r\n网页可见区域高:"+document.body.offsetWeight+"(包括边线的宽)";
s+="\r\n网页可见区域高:"+document.body.offsetHeight+"(包括边线的宽)";
s+="\r\n网页正文全文宽:"+document.body.scrollWidth;
s+="\r\n网页正文全文高:"+document.body.scrollHeight;
s+="\r\n网页被卷去的高:"+document.body.scrollTop;
s+="\r\n网页被卷去的左:"+document.body.scrollLeft;
s+="\r\n网页正文部分上:"+window.screenTop;
s+="\r\n网页正文部分左:"+window.screenLeft;
s+="\r\n屏幕分辨率的高:"+window.screen.height;
s+="\r\n屏幕分辨率的宽:"+window.screen.width;
s+="\r\n屏幕可用工作区高度:"+window.screen.availHeight;
s+="\r\n屏幕可用工作区宽度:"+window.screen.availWidth;
//过滤数字
//特殊用途
//不缓存
//正则匹配
匹配中文字符的正则表达式:[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s|]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*)\/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
1.用正则表达式限制只能输入全角字符:onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'')"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
//消除图像工具栏
<IMGSRC="mypicture.jpg"HEIGHT="100px"WIDTH="100px"GALLERYIMG="false">
or
<head>
<metahttp-equiv="imagetoolbar"content="no">
</head>
//无提示关闭
functionClose()
{
varua=navigator.userAgent
varie=navigator.appName=="MicrosoftInternetExplorer"?true:false
if(ie)
{
varIEversion=parseFloat(ua.substring(ua.indexOf("MSIE")+5,ua.indexOf(";",ua.indexOf("MSIE"))))
if(IEversion<5.5)
{
varstr='<objectid=noTipCloseclassid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">'
str+='<paramname="Command"value="Close"></object>';
document.body.insertAdjacentHTML("beforeEnd",str);
document.all.noTipClose.Click();
}
else
{
window.opener=null;
window.close();
}
}
else
{
window.close()
}
}
//取得控件得绝对位置(1)
<scriptlanguage="javascript">
functiongetoffset(e)
{
vart=e.offsetTop;
varl=e.offsetLeft;
while(e=e.offsetParent)
{
t+=e.offsetTop;
l+=e.offsetLeft;
}
varrec=newArray(1);
rec[0]=t;
rec[1]=l;
returnrec
}
</script>
//获得控件的绝对位置(2)
oRect=obj.getBoundingClientRect();
oRect.left
oRect.
//最小化,最大化,关闭
//光标停在文字最后
<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()">
//页面进入和退出的特效
进入页面<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
//网页是否被检索
//打印分页
//设置打印
<objectid="factory"style="display:none"viewastext
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"
></object>
<inputtype=buttonvalue=页面设置onclick="factory.printing.PageSetup()">
<inputtype=buttonvalue=打印预览onclick="factory.printing.Preview()">
<scriptlanguage=javascript>
functionwindow.onload()
{
//--advancedfeatures
factory.printing.SetMarginMeasure(2)//measuremarginsininches
factory.printing.SetPageRange(false,1,3)//needpagesfrom1to3
factory.printing.printer="HPDeskJet870C"
factory.printing.copies=2
factory.printing.collate=true
factory.printing.paperSize="A4"
factory.printing.paperSource="Manualfeed"
//--basicfeatures
factory.printing.header="居左显示&b居中显示&b居右显示页码,第&p页/共&P页"
factory.printing.footer="(自定义页脚)"
factory.printing.portrait=false
factory.printing.leftMargin=0.75
factory.printing.topMargin=1.5
factory.printing.rightMargin=0.75
factory.printing.bottomMargin=1.5
}
functionPrint(frame){
factory.printing.Print(true,frame)//printwithprompt
}
</script>
<inputtype=buttonvalue="打印本页"onclick="factory.printing.Print(false)">
<inputtype=buttonvalue="页面设置"onclick="factory.printing.PageSetup()">
<inputtype=buttonvalue="打印预览"onclick="factory.printing.Preview()"><br>
<ahref="http://www.meadroid.com/scriptx/docs/printdoc.htm?static"target=_blank>具体使用手册,更多信息,点这里</a>
//自带的打印预览
WebBrowser.ExecWB(1,1)打开
Web.ExecWB(2,1)关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1)保存网页
Web.ExecWB(6,1)打印
Web.ExecWB(7,1)打印预览
Web.ExecWB(8,1)打印页面设置
Web.ExecWB(10,1)查看页面属性
Web.ExecWB(15,1)好像是撤销,有待确认
Web.ExecWB(17,1)全选
Web.ExecWB(22,1)刷新
Web.ExecWB(45,1)关闭窗体无提示
<stylemedia=print>
.Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目-->
.PageNext{page-break-after:always;}<!--控制分页-->
</style>
<objectid="WebBrowser"width=0height=0classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<center
+"Password=;InitialCatalog=pubs");
varrs=newActiveXObject("ADODB.Recordset");
varsql="select*fromauthors";
rs.open(sql,conn);
shtml="<tablewidth='100%'border=1>";
shtml+="<trbgcolor='#f4f4f4'><td>au_id</td><td>au_lname</td><td>au_fname</td><td>phone</td><td>address</td><td>city</td><td>state</td><td>zip</td></tr>";
while(!rs.EOF)
{
shtml+="<tr><td>"+rs("au_id")+"</td><td>"+rs("au_lname")+"</td><td>"+rs("au_fname")+"</td><td>"+rs("phone")+"</td><td>"+rs("address")+"</td><td>"+rs("city")+"</td><td>"+rs("state")+"</td><td>"+rs("zip")+"</td></tr>";
rs.moveNext;
}
shtml+="</table>";
document.write(shtml);
rs.close();
rs=null;
conn.close();
conn=null;
</script>
//使用数据岛
<html>
<body>
srno:<inputtype=textdatasrc=#xmldateDataFLD=srnosize="76"><BR>
times:<inputtype=textdatasrc=#xmldateDataFLD=timessize="76"><BR>
<inputid="first"TYPE=buttonvalue="<< 第一条记录"onclick="xmldate.recordset.moveFirst()">
<inputid="prev"TYPE=buttonvalue="<上一条记录"onclick="xmldate.recordset.movePrevious()">
<inputid="next"TYPE=buttonvalue="下一条记录>"onclick="xmldate.recordset.moveNext()">
<inputid="last"TYPE=buttonvalue="最后一条记录>>"onclick="xmldate.recordset.moveLast()">
<inputid="Add"TYPE=buttonvalue="添加新记录"onclick="xmldate.recordset.addNew()">
<XMLID="xmldate">
<infolist>
<info><srno>20041025-01</srno><times>null</times></info>
<info><srno>20041101-09</srno><times>2004年10月1日2点22分0秒</times></info>
</infolist>
</XML>
</body>
</html>
//获得参数
<body>
<ahref="javascript:location.href=location.href+'?a=1&b=2'">search</a>
<scriptlanguage="JavaScript">
<!--
vara=location.search.substr(1);
if(a.length>0)
{
varre=/([^&]*?)\=([^&]*)/g
vars=a.match(re);
for(vari=0;i<s.length;i++)
{
alert(s[i]);
alert(s[i].split("=")[1]);
}
}
//-->
</script>
</body>
//可编辑SELECT
<inputtype=textname=re_namestyle="width:100px;height:21px;font-size:10pt;"><spanstyle="width:18px;border:0pxsolidred;"><selectname="r00"style="margin-left:-100px;width:118px;background-color:#FFEEEE;"onChange="document.all.re_name.value=this.value;">
<optionvalue="1">11111111<option>
<optionvalue="2">222222</option>
<optionvalue="3">333333</option>
</select>
</span>
//设置光标位置
functiongetCaret(textbox)
{
varcontrol=document.activeElement;
textbox.focus();
varrang=document.selection.createRange();
rang.setEndPoint("StartToStart",textbox.createTextRange())
control.focus();
returnrang.text.length;
}
functionsetCaret(textbox,pos)
{
try
{
varr=textbox.createTextRange();
r.moveStart('character',pos);
r.collapse(true);
r.select();
}
catch(e)
{}
}
functionselectLength(textbox,start,len)
{
try
{
varr=textbox.createTextRange();
r.moveEnd('character',len-(textbox.value.length-start));
r.moveStart('character',start);
r.select();
}
catch(e)
{//alert(e.description)}
}
functioninsertAtCaret(textbox,text)
{
textbox.focus();
document.selection.createRange().text=text;
}
//页内查找
functionfindInPage(str)
{
vartxt,i,found,n=0;
if(str=="")
{
returnfalse;
}
txt=document.body.createTextRange();
for(i=0;i<=n&&(found=txt.findText(str))!=false;i++)
{
txt.moveStart("character",1);
txt.moveEnd("textedit");
}
if(found)
{
txt.moveStart("character",-1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else
{
if(n>0)
{
n=0;
findInPage(str);
}
else
{
alert(str+"...您要找的文字不存在。\n\n请试着输入页面中的关键字再次查找!");
}
}
returnfalse;
}
//书
http://www.itpub.net/attachment.php?s=&postid=1894598
http://www.wrclub.net/down/listdown.aspx?id=1341
//操作EXECL
<scriptlanguage="javascript">
functionjStartExcel(){
varxls=newActiveXObject("Excel.Application");
xls.visible=true;
varnewBook=xls.Workbooks.Add;
newBook.Worksheets.Add;
newBook.Worksheets(1).Activate;
xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation=2;
xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize=5;
newBook.Worksheets(1).Columns("A").columnwidth=50;
newBook.Worksheets(1).Columns("A").WrapText=true;
newBook.Worksheets(1).Columns("B").columnwidth=50;
newBook.Worksheets(1).Columns("B").WrapText=true;
newBook.Worksheets(1).Range("A1:B1000").NumberFormat="0";
newBook.Worksheets(1).Range("A1:B1000").HorizontalAlignment=-4131;
newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex="15";
newBook.Worksheets(1).Cells(1,1).value="FirstColumn,FirstCell";
newBook.Worksheets(1).Cells(2,1).value="FirstColumn,SecondCell";
newBook.Worksheets(1).Cells(1,2).value="SecondColumn,FirstCell";
newBook.Worksheets(1).Cells(2,2).value="SecondColumn,SecondCell";
newBook.Worksheets(1).Name="MyFirstWorkSheet";
}
</script>
//自定义提示条