首页 > 代码库 > DOM 4
DOM 4
1. ***HTML DOM常用对象:
Form
2. BOM
1. ***HTML DOM常用对象:
Form: 代表一个<form元素
获取: var form=document.forms[i/id/name];
属性: .length: 相当于form.elements.length
方法: .submit() : 专用于手动提交表单
问题: 用户可能按回车,自动提交
解决: 表单提交的最后一关是一个事件
form.onsubmit(): 当表单正式提交前自动触发
获取*表单*元素:
var elem=form.elements[i/id/name];
更简化: 如果表单元素有name属性:
form.name
方法: .focus() : 让当前表单元素获得焦点
1. ***BOM
window
打开关闭窗口
窗口大小和位置
定时器
1. ***BOM:
什么是: Browser Object Model
专门操作浏览器窗口的API —— 没有标准
DHTML对象模型:
window 2个角色:
1. 代替global作为全局作用域对象
所有全局函数和全局变量都是window的成员
2. 封装所有DOM和BOM的API
包括:
history 当前窗口打开后成功访问的历史记录
location 当前窗口正在打开的URL
document DOM树的根节点,包含所有网页内容
screen 当前显示设备的信息
navigator 浏览器的配置信息(版本,名称,插件,cookie)
event 定义了浏览器中所有事件
window: 指代当前浏览器窗口对象
打开和关闭窗口
打开: open("url","name")
关闭: close();
打开一个连接,共有几种方式:
1. 在当前窗口打开, 可后退:
html: <a href="http://www.mamicode.com/url" target="_self">
js: open("url","_self");
2. 在当前窗口打开, 禁止后退:
js: location.replace("url")
在当前窗口打开新url,用新url替换history中原有url
原理:
history: 保存当前窗口打开后成功访问过的url的历史记录栈
3. 在新窗口打开,可打开多个:
html: <a href="http://www.mamicode.com/url" target="_blank">
js: open("url","_blank");
4. 在新窗口打开,只能打开一个:
html:<a href="http://www.mamicode.com/url" target="name">
js: open("url","name");
每个窗口都有一个唯一的name属性
name: 在内存中唯一标识一个窗口的名称
规定: 同时只能打开一个相同name的窗口
预定义: _self : 和当前窗口使用相同的name
_blank: 不指定自定义name,由浏览器随机分配
窗口大小和窗口位置: (了解)
窗口大小:
1. 完整窗口大小: window.outerWidth/outerHeight
***2. 文档显示区大小: window.innerWidth/innerHeight
调整: 2个机会:
1. 在打开窗口时,就规定大小:
var config="left=?,top=?,width=?,height=?";
open("url","name",config)
2. 打开窗口后再调整——被禁用
window.resizeTo(width,height)
window.resizeBy(width增量,height增量)
窗口位置: 窗口左上角距屏幕左上角的位置
window.screenLeft|screenX
window.screenTop|screenY
调整:
moveTo(left,top)
moveBy(left的增量,top的增量)
*****定时器:
什么是: 让程序按照指定时间执行一项任务
何时:
1. 让程序每隔一段时间间隔反复执行一项任务——周期性
2. 让程序等待一段时间后自动执行一次任务——一次性
如何:
周期性定时器: 3件事:
1. 任务函数task
2. 启动定时器: 将task放入定时器中,设定时间间隔
timer=setInterval(task, ms);
timer是唯一标识一个定时器实例的序号
强调: task不能加(),因为是传递给定时器去回调执行
3. 停止定时器:
clearInterval(timer);
问题: 定时器往往需要自动停止
解决: 在*任务函数*中判断临界值
如果未达到临界值,继续执行任务
否则 停止定时器
一次性定时器: 先等待,再执行一次,然后自动释放
3件事:
1. 任务函数task
2. 启动定时器: 将task放入定时器中,设定等待时间
timer=setTimeout(task, ms);
3. 停止定时器: (其实是在执行之前,停止等待)
clearTimeout(timer);
定时器原理:
定时器中的回调函数,必须在主程序所有语句执行完最后才能开始执行!
DOM 4