|
|
Posted on 2006-01-25 14:14 听棠.NET 阅读(5923) 评论(5) 编辑 收藏 所属分类: 技术积累
常用的一些javascript小技巧
[作者:oror,from蓝色理想]
事件源对象
event.srcElement.tagName event.srcElement.type
| ………………………………
捕获释放
event.srcElement.setCapture(); event.srcElement.releaseCapture();
| 事件按键
event.keyCode event.shiftKey event.altKey event.ctrlKey
| 事件返回值
鼠标位置
窗体活动元素
绑定事件
document.captureEvents(Event.KEYDOWN);
| 访问窗体元素
document.all("txt").focus(); document.all("txt").select();
| 窗体命令
窗体COOKIE
菜单事件
创建元素
document.createElement("SPAN");
| 根据鼠标获得元素:
document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms)
| 窗体图片
窗体事件绑定
document.onmousedown=scrollwindow;
| 元素
对象绑定事件 插件数目
取变量类型
typeof($js_libpath) == "undefined"
| 下拉框
下拉框.options[索引] 下拉框.options.length
| 查找对象
document.getElementsByName("r1"); document.getElementById(id);
| 定时 UNCODE编码
父对象
obj.parentElement(dhtml) obj.parentNode(dom)
| 交换表的行
替换CSS
document.all.csss.href = "a.css";
| 并排显示
隐藏焦点
根据宽度换行
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">
| 快速转到位置
锚
<a name="first"> <a href="#first">anchors</a>
| 网页传递参数
可编辑
执行菜单命令
双字节字符
汉字
让英文字符串超出表格宽度自动换行
word-wrap: break-word; word-break: break-all;
| 透明背景
<IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe>
| 获得style内容
HTML标签
document.documentElement.innerHTML
| 第一个style标签
style标签里的第一个样式
document.styleSheets[0].rules[0]
| 防止点击空链接时,页面往往重置到页首端。
<a href="javascript:function()">word</a>
| 上一网页源
asp: request.servervariables("HTTP_REFERER") javascript: document.referrer
| 释放内存
禁止右键
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()
| 窗口是否关闭
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.
|
Feedback
蓝色理想里得也是转我的,一直没追究,现在变成了作者oror,晕!
不共享我也不贴出来了,但是起码的尊重别人的劳动~~,如果不制止,以后甚至会有人说我是转别人的,这是我愤怒的原因!
|