javascript学习六~BOM和DOM简介,window,screen,navigator,location,history,节点增删改查

本文深入探讨了浏览器对象模型(BOM)和文档对象模型(DOM),包括其核心概念、对象属性与方法,并提供了实例代码演示如何操作网页元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BOM和DOM

BOM(Brower Object Model,浏览器对象模型),主要用来访问和操作浏览器各组件的一种方法。

BOM对象有:window、location、history、screen、navigator、document、frames[]

DOM(Document Object Model,文档对象模型),主要用来访问和操作网页元素的一种方法。

网页元素就是各样的HTML标记。

DOM对象有:网页中有若干个标记,每个标记就是一个元素,该元素都有一个对应的对象,叫“元素对象”。

       <html>、<body>、<table>、<div>、<form>、<input>

       <div id=result></div>

       varobj = document.getElementById(“result”);  //获取到id=result的对象

       obj.innerHTML = “这里是内容”; //innerHTML元素对象的属性

             

window对象的属性和方法

       name:窗口名称

       innerWidth和innerHeight:指浏览器窗口净宽;

              document.documentElement.clientWidth和document.documentElement.clientHeight

              documentElement是<html>元素对应的“元素对象

       outerWidth和outerHeight:Firefox支持,IE不支持,也没有可替代的

       ……

       Close():关闭窗口

       Print():

       Alter()

       Prompt()

       Confirm():确认对话框,点“确定”返回true

       setTimeout()     //只执行一次,通过“递归”实现重复执行

       clearTimeout()

       setInterval();     //周期执行

       clearInterval()

 

onchange事件:当内容(值)发生改变时,去调用一个JS函数

onload事件:当网页内容(<body>中所有数据)加载完毕时,去调用一个JS函数

       所有数据:指网页中的内容、图片、视频等都算。因此产生一个jQuery。

onclick事件:当点击元素时

补充:checkFileExt(this.value)

this是一个对象,代表当前正在操作的元素对象。this在这里代表<inputtype=“file”>对应的“元素对象”

 

 

screen屏幕对象

width:指屏幕的宽度,含任务栏

height:指屏幕的高度,是屏幕分辨率

availWidth:有效宽度,不含任务栏

availHeight:有效高度,不含任务栏

 

navigator浏览器软件对象

appName:指浏览器软件的名称

appVersion:指浏览器版本号

platform:操作平台

systemLanguage:系统语言

userLanguage:用户语言

 

//实例:根据不同浏览器,来输出window对象的innerWidth

var str = "浏览器名称:"+navigator.appName;

str += "<br>版本号:"+navigator.appVersion;

str += "<br>操作系统:"+navigator.platform;

str += "<br>系统语言:"+navigator.systemLanguage;

str += "<br>用户语言:"+navigator.userLanguage;

document.write(str+"<hr>");

 

//根据不同的浏览器,输出窗口的尺寸

if(navigator.appName=="Netscape")

{

       //Firefox浏览器

       document.write("width"+window.innerWidth+"height"+window.innerHeight);

}else

{

       //IE

       var width = document.documentElement.clientWidth;

       var height = document.documentElement.clientHeight;

       document.write("width"+width+"height"+height);

}

 

 

Location地址栏对象

举例:http://www.sina.com.cn/about/index.html?username=yao&password=123456#top

href:是指完整的URL地址,经常用于“网页跳转”

protocol:访问的协议   如:http://

host:主机名称  ,如:www.sina.com.cn

pathname:路径和文件名,如:about/index.html

search:查询字符串,如:?username=yao&password=123456

hash:锚点名称,如:#top

注意:以上各个属性,可以直接赋值。当赋一个新值时,将自动刷新网页。

 

reload():重载网页,相当于“刷新”按钮

 

history浏览历史对象

length:有多少条历史记录

back():相当于“返回”按钮

forward():相当于“前进”按钮

go(n):跳转到n指定的历史记录,n可以是0-1代表上一页、1下一页

 

history.go(1):前进

history.go(-1):后退

history.go(0):刷新

 

 

 

 

DOM简介

DOM是W3C制定的一个规范(标准),让程序可以动态的修改或改变网页元素的内容样式结构

DOM分类

核心DOM:是提供了操作HTML和XML文档的各种属性,是公共DOM,定义了一些公共的属性和方法

XML DOM:针对XML操作的接口,也是一些属性和方法。

HTML DOM:针对HTML文档操作的接口,也是一些属性和方法。

Event DOM:事件对象模型,提供了一些常用的事件。比如:onclick、onload、onchange

CSS DOM:让JS去操作和访问CSS的各种属性。

 

HTML节点树

HTML节点树的相关概念:

       一个HTML文档,只有一个根元素,就是<html>标记

       父节点(parentNode):当前节点的上一级元素;

       子节点(childNode):当前节点的下一级元素;

       兄弟节点:相邻的两个节点,同属于一个父节点。

 

 

DOM节点类型

DOM中一共定义了12种节点类型,对于HTML文档的节点类型有5

Document文档节点:对应于当前网页文档,它对应的对象是document对象

Element元素节点:所有的HTML标记都叫“元素节点”,每个元素(标记)都对应一个“元素对象”;

Text文本节点:是指标记中的文本,是最底层的节点,它下面不能再有其它子节点。

Attribute属性节点:是指元素中所有的属性构成的节点列表。一个标记有多个属性。

Comment注释节点

 

 

核心DOM——Node节点属性——公共的属性和方法

对节点操作:增加节点、删除节点、修改节点内容、读取节点

一、节点访问的属性

nodeName:节点的名称

nodeValue:节点的值

firstChild:第一个子节点(存在兼容性问题

lastChild:最后一个子节点(存在兼容性问题

childNodes:子节点列表,是一个数组

 

注意:访问节点的操作,都是以document为起点的。

访问<html>节点的方法:

(1)      document.firstChild

(2)      document.documentElement

访问<body>节点的方法:

(1)document.firstChild.lastChild

(2)document.body

 

为什么在访问<body>下的子节点时,会返回一个#text文本节点?

       核心DOM中的属性和方法,是针对HTML文档,而不是XHTML文档。先去掉DTD定义

       Firefox中会把换行空格当成一个文本节点。

 

二、节点属性的修改

       setAttribute(name,value):给一个节点增加属性,name是属性名,value是属性值

       removeAttribute(name):删除节点的属性

       getAttribute(name):获取一个节点属性的值

       <img />

       举例:img.setAttribute(“src”,”images/bg.gif”)

 

三、节点的创建和删除

createElement(tagName):创建一个指定的标记,如:document.createElement(“img”),注意:标记不加尖括号

createTextNode(text):创建一个文本节点。如:document.createTextNode(“年龄”),注意:这里只能是纯文本

appendChild(node):将一个节点,追加到某个父节点下。追到父节点的最后。

insertBefore(new,current):将一个新节点,追加到当前节点之前。Current当前节点,是已经存在的节点。New是新节点,是刚刚创建的。

removeChild(node):移除一个子节点。

 

//定义全局变量

var img_width_min = 15;

var img_width_max = 80;

var x_left = 0;

var x_right = 0;

var y_top = 0;

var y_bottom = 0;

 

//定义初始化的函数

function init()

{

       document.body.bgColor = "#000";

       x_right = window.innerWidth - img_width_max;

       y_bottom = window.innerHeight - img_width_max;

       //定时器

       setInterval("showStar()",1000);

}

//显示星星

function showStar()

{

       //创建一个图片

       var node_img = document.createElement("img");

       //随机图片大小和随机坐标

       var width = getRandom(img_width_min,img_width_max);

       var x = getRandom(x_left,x_right);

       var y = getRandom(y_top,y_bottom);

       //增加src的属性

       node_img.setAttribute("src","images/xingxing.gif");

       //增加style属性

       var style ="position:absolute;left:"+x+"px;top:"+y+"px;";

       style += "width:"+width+"px;";

       node_img.setAttribute("style",style);

       //增加一个onclick事件属性

       node_img.setAttribute("onclick","removeImg(this)");

       //将图片追加到<body>元素下

       document.body.appendChild(node_img);

}

function removeImg(obj)

{

       document.body.removeChild(obj);

}

function getRandom(min,max)

{

       return Math.floor(Math.random()*(max-min)+min);

}

</script>

</head>

 

<bodyonload="init()">

</body>

</html>

1. 用户与权限管理模块 角色管理: 学生:查看实验室信息、预约设备、提交耗材申请、参与安全考核 教师:管理课题组预约、审批学生耗材申请、查看本课题组使用记录 管理员:设备全生命周期管理、审核预约、耗材采购与分发、安全检查 用户操作: 登录认证:统一身份认证(对接学号 / 工号系统,模拟实现),支持密码重置 信息管理:学生 / 教师维护个人信息(联系方式、所属院系),管理员管理所有用户 权限控制:不同角色仅可见对应功能(如学生不可删除设备信息) 2. 实验室与设备管理模块 实验室信息管理: 基础信息:实验室编号、名称、位置、容纳人数、开放时间、负责人 功能分类:按学科(计算机实验室 / 电子实验室 / 化学实验室)标记,关联可开展实验类型 状态展示:实时显示当前使用人数、设备运行状态(正常 / 故障) 设备管理: 设备档案:名称、型号、规格、购置日期、单价、生产厂家、存放位置、责任人 全生命周期管理: 入库登记:管理员录入新设备信息,生成唯一资产编号 维护记录:记录维修、校准、保养信息(时间、内容、执行人) 报废处理:登记报废原因、时间,更新设备状态为 "已报废" 设备查询:支持按名称、型号、状态多条件检索,显示设备当前可用情况 3. 预约与使用模块 预约管理: 预约规则:学生可预约未来 7 天内的设备 / 实验室,单次最长 4 小时(可设置) 预约流程:选择实验室→选择设备→选择时间段→提交申请(需填写实验目的) 审核机制:普通实验自动通过,高危实验(如化学实验)需教师审核 使用记录: 签到 / 签退:到达实验室后扫码签到,离开时签退,系统自动记录实际使用时长 使用登记:填写实验内容、设备运行情况(正常 / 异常),异常情况需详细描述 违规管理:迟到 15 分钟自动取消预约,多次违规限制预约权限 4. 耗材与安全管理模块 耗材管理: 耗材档案:名称、规格、数量、存放位置、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值