整理的一些javascript的使用技巧

ChenReal

JavaScript/DHTML 常用操作速查

以下整理了网页开发中常用的 JavaScript/DHTML 操作语法,涵盖事件、元素操作、窗体控制、样式处理等核心场景:

一、事件相关

语法说明
event.srcElement.tagName获取事件源对象的标签名
event.srcElement.type获取事件源对象的类型
event.srcElement.setCapture()捕获事件源的鼠标事件
event.srcElement.releaseCapture()释放事件源的鼠标捕获
event.keyCode获取按键编码(如回车=13、Tab=9)
event.shiftKey/event.altKey/event.ctrlKey判断Shift/Alt/Ctrl键是否按下(布尔值)
event.returnValue设置事件返回值(false可阻止默认行为)
event.x/event.y获取鼠标在事件源中的坐标
document.captureEvents(Event.KEYDOWN)绑定全局键盘按下事件
document.onmousedown=scrollwindow绑定窗体鼠标按下事件(scrollwindow为自定义函数)
document.oncontextmenu = () => false禁止右键菜单
obj.detachEvent('onclick', a)解绑对象的onclick事件(a为事件处理函数)

二、元素操作

语法说明
document.activeElement获取窗体当前活动元素
document.all("txt").focus()让id为txt的元素获得焦点
document.all("txt").select()选中id为txt的输入框内容
document.createElement("SPAN")创建SPAN元素
document.elementFromPoint(event.x,event.y)根据鼠标坐标获取元素
document.getElementsByName("r1")根据name获取元素集合
document.getElementById(id)根据id获取单个元素
document.images[索引]获取窗体中的图片元素
document.窗体.elements[索引]获取窗体中的表单元素
obj.parentElement获取元素的父元素(DHTML)
obj.parentNode获取元素的父节点(DOM标准)
TableID.moveRow(2,1)交换表格的行(参数:源行索引、目标行索引)
obj.scrollIntoView(true)让元素滚动到可视区域(true=对齐顶部)
obj.contenteditable=true让元素可编辑
document.selection.createRange().duplicate().text获取选中的文本内容

三、窗体/浏览器控制

语法说明
document.execCommand执行窗体命令(如复制、粘贴)
document.cookie操作窗体Cookie(读取/设置)
navigator.plugins获取浏览器插件数目
timer=setInterval('scrollwindow()',delay)设置定时器(delay为毫秒)
clearInterval(timer)清除定时器
location.search()获取网页URL的查询参数(?后的内容)
document.referrer获取上一网页的URL(JS版)
request.servervariables("HTTP_REFERER")获取上一网页的URL(ASP版)
CollectGarbage()释放浏览器内存
window.open("aa.htm", "meizz", "fullscreen=7")打开最大化且无关闭按钮的窗口(IE专属)
win.closed判断窗口是否已关闭
window.screen.height/width获取屏幕分辨率(高/宽)
window.screen.availHeight/availWidth获取屏幕可用工作区尺寸
document.body.clientWidth/clientHeight网页可见区域宽/高(不含滚动条)
document.body.offsetWidth/offsetHeight网页可见区域宽/高(含边线)
document.body.scrollWidth/scrollHeight网页正文全文宽/高
document.body.scrollTop/scrollLeft网页被卷去的高度/宽度

四、样式与显示

语法说明
document.all.csss.href = "a.css"替换链接的CSS文件
display:inline元素并排显示
hidefocus=true隐藏元素焦点
style="word-break:break-all"根据宽度自动换行
style="word-wrap: break-word; word-break: break-all英文字符串超出表格宽度自动换行
frame allowtransparency="allowtransparency"透明背景的iframe
obj.style.cssText获取/设置元素的style内容
document.documentElement.innerHTML获取/设置HTML根标签的内容
document.styleSheets[0]获取第一个style标签
document.styleSheets[0].rules[0]获取第一个style标签里的第一个样式
tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'"表格行鼠标悬停变色

五、输入框/表单特殊处理

语法说明
input style="IME-MODE: disabled"关闭输入法
input onfocus="this.select()" value="123"获焦时自动全选内容
input onkeydown="if(event.keyCode==13)event.keyCode=9"Enter键转为Tab键(移到下一个输入框)
input onfocus="alert(this.defaultValue)" value="123">获焦时显示默认值
input autocomplete="on/off"开启/关闭输入框自动完成功能
下拉框.options[索引]获取下拉框的选项
下拉框.options.length获取下拉框选项数量

六、编码/时间/其他实用操作

语法说明
escape()/unescape()UNCODE编码/解码(旧版)
encodeURIComponent()/decodeURIComponent()URI编码/解码(推荐,支持特殊字符)
typeof($js_libpath) == "undefined"判断变量类型是否为未定义
var n1 = new Date("2004-10-10".replace(/-/g, "\\/")).getTime()获取时间对应的毫秒数
meta http-equiv="refresh" content="8;URL=http://xxx"8秒后自动刷新并跳转
a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy"快速打开邮件客户端(指定主题/内容)
link href="favicon.ico" rel="Shortcut Icon"设置地址栏图标(16*16 16色,放根目录)
link href="favicon.ico" rel="Bookmark"设置收藏栏图标
input onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'"查看网页源代码
a href="javascript:function()"防止空链接点击后跳转到页首
obj.title = "123 \n sdfs"标题换行(部分浏览器支持)
input style="CLIP: rect(5px 15px 15px 5px); POSITION: absolute" type="checkbox"扁平样式的复选框

示例:网页尺寸信息获取

var s = "";
s += "\r\n网页可见区域宽:"+ document.body.clientWidth;
s += "\r\n网页可见区域高:"+ document.body.clientHeight;
s += "\r\n网页可见区域宽(含边线):"+ document.body.offsetWidth;
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;
alert(s);