HTML--JavaScript操作BOM对象

目录

一.BOM模型概述

二.BOM核心:window对象 

 常用属性

常用方法:

confirm() 案例

 open ()+close()案例

setTimeout( ) 案例

 setInterval( ) 案例

三.Document对象

常用属性 

 常用方法 

​编辑

  getElementByld() + innerHTML案例

 getElementsByName() +getElementsByTagName()案例

 清空页面内容 

四.JavaScript的内置对象 

 Date 内置对象

 Math对象

 清楚函数 

 总结 

本章要求

  • 了解BOM模型
  • 掌握BOM模型实际应用

一.BOM模型概述

       BOM(浏览器对象模型)是JavaScript中的一个重要概念,它提供了一组用于控制浏览器窗口和页面内容的对象和方法。

BOM可实现功能:

  • 弹出新的浏览器窗口 移动、
  • 关闭浏览器窗口以及调整窗口的大小
  • 页面的前进、后退

二.BOM核心:window对象 

        window对象:表示浏览器窗口或框架。它是BOM的顶层对象,包含了浏览器窗口的各种属性和方法,比如窗口大小、位置、打开新窗口等。

 常用属性

  • history 属性

history属性是一个表示浏览器历史记录的对象。通过history属性可以使用JavaScript执行以下操作:返回上一个页面,进入下一个页面,获取历史记录长度等等。

 

  •  location属性

location属性表示当前文档的URL地址。它提供了访问和操作URL的方法。

通过上述属性实现的功能和浏览器左上角前进,后退,刷新等按钮一致。

案例:

<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8">
<title>主页面</title>
<style type="text/css">
body{
	margin: 0px auto;
	text-align:center;
}
</style>
</head>
<body>
<img src="images/flow.jpg" alt="鲜花" /><br />
<a href="javascript:history.back()">返回主页面</a></p><!--返回上一级页面-->
<a href="javascript:location.href='flower.html'">查看鲜花详情</a>  
<a href="javascript:location.reload()">刷新本页</a><!--点击重新加载本页面-->
</body>
</html>
常用方法:

针对window对象的常用方法是对浏览器窗口进行一系列操作,例如点击某个按钮关闭,关闭某页面时需要再次确认等等,这些都可以通过下面的常用方法实现。

  • confirm() 案例

confirm() :显示一个带有提示信息,确定和取消按钮的对话框。

 语法

window.confirm("提示信息")
<script type="text/javascript">
			var flag = window.confirm("确认要关闭这个页面嘛?")
			if(flag == true){window.alert("正在关闭页面,请稍后...");}
			else{window.alert("已取消关闭...");}
</script>

  •  open ()+close()案例

open ():打开一个新的浏览器窗口,加载给定 URL 所指定的文档。

close():关闭浏览器页面

语法:

window.open("弹出窗口的url")
<body>
		<script type="text/javascript">
			function open_index(){window.open("open.html");}
			function close_index(){window.close();}
		</script>
		<input type="button" value="点击此处调用open函数打开新页面" onclick="open_index()"/>
		<input type="button" value="点击此处关闭页面" onclick="close_index()"/>
</body>
  • setTimeout( ) 案例

 在指定的毫秒数后调用函数或计算表达式。

语法:

window.setTimeout("调用的函数",毫秒数);

 案例 

<body>
		<p>此页面等待5秒后自动跳转...</p>
		<script type="text/javascript">
			function fun1(){document.write("这是5秒后执行的函数页面");}
			window.setTimeout("fun1()",5000);
		</script>
</body>
  •  setInterval( ) 案例

按照指定的周期(以毫秒计)来调用函数或表达式

语法 

window.setInterval("调用的函数",毫秒数);

案例 

<body>
		<p>此页面等待3秒后自动跳转...</p>
		<script type="text/javascript">
			function fun1(){document.write("这是3秒后执行的函数页面");}
			window.setInterval("fun1()",3000);
		</script>
</body>

三.Document对象

在JavaScript中,document对象是浏览器提供的用于操作当前页面的工具。document代表了整个HTML文档,对象则代表访问和操作文档中的元素、样式、事件等。

常用属性 

通过referrer():返回含有当前问文档的URL 

 案例

  • 领奖页面代码

下面的代码中含有 href="praise.html" 即该URL含有奖品显示页面文档,因此当点击超链接跳转时,奖品显示页面会导入领奖页面的URL,此时if 语句中URL不为空,页面将显示

”大奖赶快拿啦!笔记本!数码相机!" 字样。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>领奖页面</title>
    <style type="text/css">
        body,h1{margin: 0;padding: 0;}
        .prize{text-align: center;}
    </style>
</head>
<body>
<div class="prize">
    <img src="images/d1.jpg" alt="中奖" />
    <h1><a href="praise.html">马上去领奖啦!</a></h1>
</div>
</body>
</html>
  • 奖品显示页面代码 

直接运行后,未载入本页面文档地址,URL问空,将显示"您不是从领奖页面进入,5秒后将自动跳转到登录页面"

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>奖品显示页面</title>
    <style type="text/css">
        body{margin: 0;}
    </style>
</head>
<body>
	<script type="text/javascript">
		var url = document.referrer;  //载入本页面文档的地址(从哪来的)
		if(url == ""){
			document.write("<h2>您不是从领奖页面进入,5秒后将自动跳转到登录页面</h2>");
			//新技术点(定时函数)
			window.setTimeout("location.href='login.html'",5000);	
		}else{
			document.write("<h2>大奖赶快拿啦!笔记本!数码相机!</h2>");
		}
	</script>
</body>
</html>
  • 定时函数跳转页面代码 

5s后自动跳转到该页面

 
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>登录页面</title>
    <style type="text/css">
        body{margin: 0;}
    </style>
</head>
<body>
<img src="images/login.jpg" alt="登录图片"/>
</body>
</html>
 常用方法 

html中通常使用CSS选择器来选中某个标签,而在javascript中通常使用Document对象中的提供的常用方法来选中某一个标签。

  getElementByld() + innerHTML案例

getElementByld():用于选中指定id标签中的第一个元素。

.innerHTML:用于将右节点的内容赋值给左节点的内容

语法 

#选中当前文文档中标签ID和指定ID相同的标签中的第一个元素
document.getElementById("指定标签id")
change1.innerHTML = "需要赋值的内容";

案例 

<body>
		<div id="01">这是未更换之前的文字</div>
		<input type="button" name="change" id="02"/ value="点击此处更换上述文字" onclick="change()">
		<script>
			function change(){
			//此处使用document.getElementById()选中id=01的标签,并将该标签中的第一个元素赋值给change1
				var change1 = document.getElementById("02").value;
				//change1.innerHTML:获取"="号右边的内容,并赋值给change1	
				document.getElementById("01").innerHTML = change1;
			} 
		</script>
</body>
 getElementsByName() +getElementsByTagName()案例

getElementsByName() :选中所有name属性中的内容和指定内容相同的标签。

getElementsByTagName():选中所有名称和指定内容相同的标签。

案例

<form name="myForm">
  <input type="text" name="firstName">
  <input type="text" name="lastName">
  <input type="submit" value="Submit">
</form>
<script>
   var form = document.getElementsByName("myForm")[0]; // 获取表单元素
   var inputs = form.getElementsByTagName("input"); // 获取表单中的所有input元素
 
   for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].name === "firstName") {
       console.log("First name input found!");
      } else if (inputs[i].name === "lastName") {
        console.log("Last name input found!");
      }
    }
</script>

         在这个例子中,我们首先通过getElementsByName方法获取具有name属性为"myForm"的元素,然后通过getElementsByTagName方法获取表单中所有的input元素。接下来,我们遍历input元素,通过比较name属性的值来判断是哪个input元素,然后根据条件进行相应的操作。

 清空页面内容 
document.write(" ");
  •  总结

getElementByld() 适用于选中该单个标签。

getElementsByName() +getElementsByTagName() 适用于选中多个标签。

四.JavaScript的内置对象 

 Date 内置对象

用于在页面中显示当前的小时,分钟和秒。

 

<body>
		<div id="01"></div>
		<script type="text/javascript">
			var date = new Date();
			var hh = date.getHours();
			var mm = date.getMinutes();
			var ss = date.getSeconds();
			document.getElementById("01").innerHTML = hh+":"+mm+":"+ss;
		</script>
</body>
 Math对象

Math 用于生成一个随机数。

随机点名案例 

<body>
		<input type="button" name="math" value="点我获取随机数" onclick="fun1()"/>
		<div id="01"></div>
		<script type="text/javascript">
			function fun1(){
				var students = new Array("A1","A2","A3","A4","A5");
				var num = Math.ceil(Math.random()*4)-1;
                //当 num = 1 时 取出的是students[1]=A2
				document.getElementById("01").innerHTML = students[num];
			}
		</script>
</body>

 跟随时间走时案例

<body>
		<input type="button" value="点击触发清除函数" onclick="clearfun()"/>
		<h1></h1>
		<script type="text/javascript">
			function getdate(){
				//创建日期对象
				var date = new Date();
				//获取年月日时分秒
				var yyyy = date.getFullYear();
				var MM = date.getMonth()+1;
				var dd = date.getDate();
				var day = date.getDay();
				var hh = date.getHours();
				var mm = date.getMinutes();
				var ss = date.getSeconds();
				//拼出一句话
				var message = "现在是:<br/>";
				message += yyyy+"年"+MM+"月"+dd+"日<br/>"
				message += hh+"时"+mm+"分"+ss+"秒&nbsp;&nbsp;今天是星期"+day;
				//getElementsByTagName():选中的是一个数组。需要添加[0]将数组中的元素取出
				document.getElementsByTagName("h1")[0].innerHTML = message;
			}
			//每秒调用一次自定义函数getdate()
			var myTime = window.setInterval("getdate()",1000);
			function clearfun(){
				clearTimeout(myTime);
			}
		</script>
	</body>

 

 上述案例中,时间会以1秒周期更新,随时间变化而变化。 

 清楚函数 

 总结 

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值