详细介绍下js中的window与document

详细介绍下js中的window与document
最新回答
随风飞走

2021-12-11 11:41:28

window对象是JavaScript中代表浏览器窗口的全局对象,它既是浏览器窗口的抽象接口,也是所有其他浏览器相关对象的顶层容器。以下是其核心特性:

属性与功能

  • 基础属性:window.name可设置窗口名称,window.defaultStatus控制状态栏文本,window.location提供URL操作接口(如修改href属性可跳转页面)。
  • 时间控制:setTimeout(action, time)在指定毫秒后执行单次操作,setInterval(action, time)按固定间隔重复执行,clearInterval()可终止后者。
  • 窗口管理:window.open()打开新窗口,window.close()关闭当前窗口(受浏览器策略限制)。
  • 成员对象

    history:记录浏览历史,history.back()后退、history.forward()前进、history.go(i)跳转至第i个页面(i为正前进,负后退)。

    screen:提供屏幕信息,如screen.width/height(分辨率)、screen.availWidth/availHeight(可用区域尺寸)。

    navigator:检测浏览器环境,包含userAgent(浏览器标识)、cookieEnabled(是否支持Cookie)、systemLanguage(系统语言)等属性。

    external:扩展功能,如external.AddFavorite()将网址加入收藏夹(仅部分浏览器支持)。

document对象是window的子对象,代表当前加载的HTML文档,提供操作页面元素的接口。

核心功能

  • 属性控制

    样式与颜色:document.bgColor设置背景色,document.fgColor修改文本颜色,linkColor/alinkColor/vlinkColor分别控制未访问、激活、已访问链接的颜色。

    文档信息:document.title获取标题,document.URL返回当前URL,fileCreatedDate/fileModifiedDate(只读)显示文件创建/修改时间。

  • 元素操作

    创建与获取:document.createElement_x(Tag)动态生成HTML标签,getElementByIdx_x(ID)通过ID获取元素,getElementsByName(Name)通过name属性获取元素集合。

    内容修改:document.write()直接写入内容(会覆盖页面),body.innerHTML修改主体内HTML代码,body.innerText更新纯文本。

  • 事件绑定:通过body.onclick、body.onmouseover等属性绑定事件(如鼠标点击、悬停触发函数)。
  • 子对象

    location:与window.location功能一致,提供href(完整URL)、pathname(路径部分)等属性,reload()可刷新页面。

    images集合:document.images访问所有<img>标签,images[0]获取第一个图片,images.oImage.src修改图片路径。

两者关系:document是window的属性之一,共同构成浏览器端JavaScript的核心API。window侧重窗口管理与浏览器环境交互,document专注于页面内容操作,二者协同实现动态网页功能。