DOM
1 简介
dom就是html页面的模型,把每个标签都做为一个对象,通过js调用dom的属性和方法就可以编程控制网页中的各种元素。
dom也有事件,属性和方法。dom中不仅标签是对象,标签的属性和文本都是对象。
2 事件
dom中有很多事件,在标签中写onclick=“f1();”表示元素的单击事件响应程序调用了函数f1();
onclick=f1 表示元素的单击事件响应程序是f1();
3 window对象
window是dom的一个顶级对象,代表当前浏览器窗口,使用window对象的属性和方法时可以省略window。
方法:
alert():弹出警告对话框
confirm():弹出确定,取消对话框,返回true或者false
prompt():弹出输入窗口
setinterval(指定的代码字符数,时间间隔):定时器(重复执行) 例如:setinterval(f1,1000)或者setinterval (“f1()”,1000),例子的区别和事件的原理是一样的。
clearinterval(定时器的id) 清空定时器 。clearInterval()取消setInterval的定时执行,clearInterval要指定清除那个定时器的标识,即setInterval的返回值。
settimeout(指定的代码字符数,时间间隔):定时器(执行一次)
cleartimeout
showModalDialog(页面地址,参数,窗口的设置):弹出模态对话框
showModelessDialog(页面地址,参数,窗口的设置):弹出非模态窗口
给对话框传递参数,使用showModalDialog的第二个参数传递参数,
在对话框中用window.dialogArguments获得传递的参数值;
对话框中给window.parent.returnValue设定返回值,
这样在父窗口中就可以通过showModalDialog返回值读取设置的返回值了。
传递多个参数,将参数包装到数组中,然后仍然是通过第二个参数传递,返回多个返回值也可以返回数组
属性:
location.href="":重新导航到新页面,可以取值,也可以赋值
location.reload():刷新当前页
event:altKey,bool类型,表示事件发生时是否按下了alt键;还有ctrlKey,shiftKey
clientX,clientY发生事件时鼠标在客户区的坐标;
screenX,screenY发生事件时鼠标在屏幕上的坐标;
offsetX、offsetY 发生事件时鼠标相对于事件源的坐标;
srcelement获得事件源的对象,
button发生事件时鼠标按键
clipboarddata:对粘贴板的操作,
setdata(“text”,value)设置粘贴板的值。
getdata(“text”)获取粘贴板 的值,
cleardata(“text”)清空粘贴板。
当复制的时候body的oncopy方法被触发,直接return false就是禁止复制。<body oncopy="alert('禁止复制!');return false;"
history:back()后退,forward()前进,go(-1)后退,go(1)前进
document:
write();//向文档中写入内容。
在onclick等事件中写的代码会冲掉页面中的内容,
只有在页面加载过程中write才会与原有内容融合在一起。
writeln()是在源代码里面换行。与<br/>不一样。
getElementById(), (非常常用),根据元素的Id获得对象
getElementsByName(),根据元素的name获得对象
getElementsByTagName(),获得指定标签名称的元素数组
4 body、document对象
事件:
1、onload(页面加载后触发)
2、onunload(页面卸载后触发)
3、onbeforeunload(页面卸载前触发)
5 通用事件:
1、onclick(单击)
2、ondblclick(双击)
3、onkeydown(按键按下)
4、onkeypress(点击按键)
5、onkeyup(按键释放)
6、onmousedown(鼠标按下)
7、onmousemove(鼠标移动)
8、onmouseout(鼠标离开元素范围)
9、onmouseover(鼠标移动到元素范围)
10、onmouseup(鼠标按键释放)
11、oncontextmenu(在浏览器中单击鼠标右键显示”右键菜单”时触发)
6 事件冒泡
如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发。触发的顺序是“由内 而外”
事件中的this。除了可以使用event.srcElement在事件响应函数中,this表示发生事件的控件。
只有在事件响应函数才能使用this获得发生事件的控件,在事件响应函数调用的函数中不能使用(这里的this表示window对象),
如果要使用则要将this传递给函数或者使用event.srcElement。
(*)this和event.srcElement的语义是不一样的,this就是表示当前监听事件的这个对象,event.srcElement是引发事件的对象:事件冒泡。
7 form对象
click(),focus(),blur();//相当于通过程序来触发元素的单击、获得焦点以及失去焦点的事件
submit()提交表单,但是不会触发onsubmit事件
8 操作页面样式
修改元素的样式不是设置class属性,而是className属性。单独修改样式的属性使用“style.属性名”。
10 正则表达式
创建的方法:
1.var regex = new RegExp("\\d{5}")
2.var regex = / \d{5} / /表达式/是JavaScript中专门为简化正则表达式编写而提供的语法,写在//中的正则表达式就不用管转义符了。
RegExp对象的方法:
1、test(str)判断字符串str是否匹配正则表达式,相当于IsMatch
var regex = /.+@.+/;
alert(regex.test("a@b.com"));
alert(regex.test("ab.com"));
2、exec(str)进行搜索匹配,返回值为匹配结果(*),相当于c#中match()和matches()
如果 exec() 找到了匹配的文本,则返回一个结果数组(完全匹配的字符串以及提取组的结果。)。否则,返回 null。
要提取多个需要反复调用exec()类似于matches()方法。//注意全局模式/…../g
在非全局模式下,调用一次exec()相当于match();在全局模式下连续多次调用相当于matches()

浙公网安备 33010602011771号