常用的javascript小技巧[作者oror][收藏]
常用的一些javascript小技巧
[作者:oror,from蓝色理想]
事件源对象
event.srcElement.tagName event.srcElement.type |
………………………………
捕获释放
事件按键
事件返回值
鼠标位置
窗体活动元素
绑定事件
访问窗体元素
窗体命令
窗体COOKIE
菜单事件
创建元素
根据鼠标获得元素:
窗体图片
窗体事件绑定
元素
对象绑定事件
插件数目
取变量类型
下拉框
查找对象
定时
UNCODE编码
父对象
交换表的行
替换CSS
并排显示
隐藏焦点
根据宽度换行
自动刷新
简单邮件
快速转到位置
锚
网页传递参数
可编辑
执行菜单命令
双字节字符
汉字
让英文字符串超出表格宽度自动换行
透明背景
获得style内容
HTML标签
第一个style标签
style标签里的第一个样式
防止点击空链接时,页面往往重置到页首端。
上一网页源
释放内存
禁止右键
禁止保存
禁止选取
禁止粘贴
地址栏图标
查看源码
关闭输入法
自动全选
ENTER键可以让光标移到下一个输入框
文本框的默认值
title换行
获得时间所代表的微秒
窗口是否关闭
checkbox扁平
获取选中内容
自动完成功能
窗口最大化
无关闭按钮IE
统一编码/解码
表格行指示
//各种尺寸
//正则匹配
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
//消除图像工具栏
[/html]
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">
or
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>
[/html]
//取得控件得绝对位置(1)
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//获得控件的绝对位置(2)
//打印分页
//设置打印
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//自带的打印预览
//去掉打印时的页眉页脚
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//无模式的提示框
//下载文件
//检验连接是否有效
//检查网页是否存在
//禁止FSO
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[索引] |
对象绑定事件
插件数目
navigator.plugins |
取变量类型
typeof($js_libpath) == "undefined" |
下拉框
下拉框.options[索引] 下拉框.options.length |
查找对象
document.getElementsByName("r1"); document.getElementById(id); |
定时
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> |
禁止选取
<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty)" oncopy="document.selection.empty)" onbeforecopy= "return false"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 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)"> |
获取选中内容
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对":"、"/"、";" 和 "?"也编码 |
表格行指示
//各种尺寸
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; |
//不缓存
<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> |
//正则匹配
匹配中文字符的正则表达式: [\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- ./?%&=]*)? |
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
//消除图像工具栏
[/html]
<IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">
or
<head>
<meta http-equiv="imagetoolbar" content="no">
</head>
[/html]
//取得控件得绝对位置(1)
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//获得控件的绝对位置(2)
oRect = obj.getBoundingClientRect(); oRect.left oRect. |
//打印分页
<p style="page-break-after:always">page1</p> <p style="page-break-after:always">page2</p> |
//设置打印
[Ctrl+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) 关闭窗体无提示 <style media=print> .Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目--> .PageNext{page-break-after: always;}<!--控制分页--> </style> <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object> <center class="Noprint" > <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)> <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)> <input type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)> </p> <p> <input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)> </center> |
//去掉打印时的页眉页脚
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//无模式的提示框
function modelessAlert(Msg) { window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;"); } |
//下载文件
function DownURL(strRemoteURL,strLocalURL) { try { var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP"); xmlHTTP.open("Get",strRemoteURL,false); xmlHTTP.send(); var adodbStream=new ActiveXObject("ADODB.Stream"); adodbStream.Type=1;//1=adTypeBinary adodbStream.Open(); adodbStream.write(xmlHTTP.responseBody); adodbStream.SaveToFile(strLocalURL,2); adodbStream.Close(); adodbStream=null; xmlHTTP=null; } catch(e) { window.confirm("下载URL出错!"); } //window.confirm("下载完成."); } |
//检验连接是否有效
function getXML(URL) { var xmlhttp = new ActiveXObject("microsoft.xmlhttp"); xmlhttp.Open("GET",URL, false); try { xmlhttp.Send(); } catch(e){} finally { var result = xmlhttp.responseText; if(result) { if(xmlhttp.Status==200) { return(true); } else { return(false); } } else { return(false); } } } |
//检查网页是否存在
function CheckURL(URL) { var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.Open("GET",URL, false); try { xmlhttp.Send(); var result = xmlhttp.status; } catch(e) {return(false); } if(result==200) { return true; } xmlhttp = null; return false; } |
//禁止FSO
1.注销组件 regsvr32 /u scrrun.dll 2.修改PROGID HKEY_CLASSES_ROOT\Scripting.FileSystemObject Scripting.FileSystemObject 3.对于使用object的用户,修改HKEY_CLASSES_ROOT\Scripting. |