首页 > 编程语言 >JavaScript的BOM和DOM对象操作与设置顶级窗口------前端

JavaScript的BOM和DOM对象操作与设置顶级窗口------前端

时间:2023-11-11 16:32:58浏览次数:32  
标签:function DOM JavaScript window getElementById innerText BOM var document

准备一个用来嵌入的HTML页面

<!DOCTYPE html>
<!-- 这是HTML的注释 -->
<html lang="en" id="myHtml">
	<head>
		<!-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 -->
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>HtmlAll</title>
	</head>
	<body>
		<iframe src="001.html" width="500px" height="500px"></iframe>
	</body>
</html>

准备一个被嵌入的HTML页面

<!DOCTYPE html>
<!-- 这是HTML的注释 -->
<html lang="en" id="myHtml">
	<head>
		<!-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 -->
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>HtmlAll</title>
		<style type="text/css">
			span
			{
				color: red;
				font-size: 12px;
			}
		</style>
	</head>
	<body>
		<!-- JS包括三大块
		dom指的是文档对象模型,对网页中的节点进行增删改查的过程
		bom浏览器对象模型(关闭浏览器窗口,打开一个浏览器窗口,后退前进,浏览器地址栏上的地址)
		ecmascript是JS的核心语法ES标准
		bom的顶级对象是window(浏览器窗口),dom的顶级对象是document(HTML文档) -->
		<!-- 实际上bom是包含dom的 -->
		<!-- bom和DOM是包含关系 -->
		<script type="text/javascript">
			window.onload = function()
			{
				var UF = document.getElementById("usernameError");
				//通过浏览器窗体获取了html元素
				document.getElementById("btn").onclick = function()
				{
					alert(btn);
				}
				document.getElementById("get").onclick = function()
				{
					alert(document.getElementById("txt").value);
					document.getElementById("nwx").value = "jack";
				}
				var un = document.getElementById("username");
				un.onblur = function()
				{
					username = un.value;
					username = username.trim();
					if(username)
					{
						//代表非空
						if(username.length < 6 || username.length > 14)
						{
							//用户名长度非法
							UF.innerText = "用户名必须在6到14之间";
						}
						else
						{
							//用户名长度合法
							//判断是否有非法字符
							var regExp = /^[A-Za-z0-9]+$/;
							if(regExp.test(username))
							{
								//合法
							}
							else
							{
								//不合法
								UF.innerText = "用户名只能由数字和字母组成";
							}
						}
					}
					else
					{
						//代表空
						//提示信息
						UF.innerText = "用户名不能为空";
					}
				}
				un.onfocus = function()
				{			
					//这里要先检测再清空,这样就可以判断内容是否为空格组成用于清理
					if(UF.innerText != "")
					{
						//清空空格内容
						un.value = "";
					}
					//清空提示信息
					UF.innerText = "";
				}
				document.getElementById("pwd2").onblur = function()
				{
					var pwd1 = document.getElementById("pwd1").value;
					var pwd2 = document.getElementById("pwd2").value;
					if(pwd1 != pwd2)
					{
						//密码错误的提示标签提示错误
						document.getElementById("pwdError").innerText = "两次输入的密码不一致";
					}
					if(pwd1 === "" || pwd2 === "")
					{
						document.getElementById("pwdError").innerText = "密码不能为空";
					}
				}
				document.getElementById("pwd2").onfocus = function()
				{
					if(document.getElementById("pwdError").innerText != "")
					{
						document.getElementById("pwdError").innerText = "";
					}
				}
				document.getElementById("email").onblur = function()
				{
					var email = document.getElementById("email").value;
					var emailRegExp = /^[A-Za-z0-9]+([-._][A-Za-z0-9]+)*@[A-Za-z0-9]+(-[A-Za-z0-9]+)*(\.[A-Za-z]{2,6}|[A-Za-z]{2,4}\.[A-Za-z]{2,3})$/;
					if(emailRegExp.test(email))
					{
						
					}
					else
					{
						//没过
						document.getElementById("emailnameError").innerText = "必须输入一个邮箱";
					}
				}
				document.getElementById("email").onfocus = function()
				{
					if(document.getElementById("emailnameError").innerText != "")
					{
						document.getElementById("emailnameError").innerText = "";
					}
				}
				document.getElementById("myForm").onsubmit = function()
				{
					
				}
				document.getElementById("update").onclick = function()
				{
					document.getElementById("username").onblur();
					document.getElementById("pwd2").onblur();
					document.getElementById("email").onblur();
					var emailnameError = document.getElementById("emailnameError").innerText;
					var emailnameError = document.getElementById("pwdError").innerText;
					if(UF.innerText === "" && emailnameError === "" && pwdError === "")
					{
						document.getElementById("myForm").submit();
					}
					else
					{
						alert("输入信息有误");
					}
				}
				var aihaos = document.getElementsByName("aihao");
				document.getElementById("firstCheck").onclick = function()
				{
					var flag = document.getElementById("firstCheck");					
					// if(flag.checked)
					// {
					// 	//全选
					// 	//返回的是多个对象
					// 	for(var i = 0;i < aihaos.length;i++)
					// 	{
					// 		aihaos[i].checked = true;
					// 	}
					// }
					// else
					// {
					// 	//取消全选
					// 	//返回的是多个对象
					// 	for(var i = 0;i < aihaos.length;i++)
					// 	{
					// 		aihaos[i].checked = false;
					// 	}
					// }
					//简便写法
					for(var i = 0;i < aihaos.length;i++)
					{
						aihaos[i].checked = flag.checked;
					}
				}
				for(var i = 0;i < aihaos.length;i++)
				{
					aihaos[i].onclick = function()
					{
						var count = 0;
						//总选中量和被选中量相同,全选打勾
						for(var i = 0;i < aihaos.length;i++)
						{
							if(aihaos[i].checked)
							{
								count++;
							}
						}
						//简便写法
						document.getElementById("firstCheck").checked = (count == aihaos.length);
						// if(count == aihaos.length)
						// {
						// 	document.getElementById("firstCheck").checked = true;
						// }
						// else
						// {
						// 	document.getElementById("firstCheck").checked = false;
						// }
					}
				}
				document.getElementById("setWindow").onclick = function()
				{
					//如果当前窗口不是顶级窗口,设置为顶级窗口
					//window是当前浏览器窗口,代表002
					//以下代码的意思是,因为我们当前窗口是002,他不是001,所以001的window.self不是window.top
					//所以会将002的当前窗口修改为了001
					if(window.top != window.self)
					{
						//设置当前窗口为顶级窗口
						//window.self.location这个是001
						//当前的window.top.location还是002
						//触发后修改window.top.location为001
						window.top.location = window.self.location;
					}
				}
				document.getElementById("provinceList").onchange = function()
				{
					alert(document.getElementById("provinceList").value);
				}
				var code;
				document.getElementById("GetTime").onclick = function()
				{
					code = window.setInterval(displayTime,100);
				}
				function displayTime()
				{
					//获取系统当前时间
					var Time = new Date();
					//通过日期Date对象获取年月日
					var year = Time.getFullYear();
					//获取月份,但是是0到11,所以要加1
					var month = Time.getMonth();
					//获取的一周的第几天
					var day = Time.getDate();
					//怎么获取毫秒数
					var times = Time.getTime();
					//转换本地语言的日期格式
					Time = Time.toLocaleString();
					document.getElementById("TimeDiv").innerText = Time;
				}
				document.getElementById("World!").onclick = function()
				{
					window.clearInterval(code);
				}
				document.getElementById("closeDE").onclick = function()
				{
					window.close();
				} 
				document.getElementById("chooseD").onclick = function()
				{
					//取消和确认会返回一个布尔类型
					var i = window.confirm("亲,确认删除吗");
					alert(i);
				}
				document.getElementById("forwords").onclick = function()
				{
					window.history.go(1);
				}
				document.getElementById("goBaidu").onclick = function()
				{
					//可以设置我们的链接为百度 
					var location = window.location;
					location.href = "http://www.baidu.com";
					//总结浏览器往服务器发请求
					//表单,超链接
					//document.location文本重定向
					//window.location窗口重定向
					//window.open()请求地址
					//以上所有方法都可以往服务器传送数据,只有表单提交的数据才是动态的(JSP可以动态)
				}
			}	
		</script>
		<input type="button" id="btn" value="hello"/>
		<input type="text" id="txt"/>
		<input type="button" id="get" value="获取文本的value"/>
		<input type="text" id="nwx"/>
		<input type="text" value="哈哈哈哈哈哈哈哈哈" onblur="alert(this.value)"/>
		<div>
			<table>
				<form id="myForm" action="http://www.baidu.com">
					<tr>
						<th>
							用户名:
						</th>
						<th>
							<input type="text" id="username"/>
							
						</th>
						<th>
							<span id="usernameError"></span>
						</th>
					</tr>
					<tr>
						<th>
							密码:
						</th>
						<th>
							<input id="pwd1" type="text"/>
						</th>
					</tr>
					<tr>
						<th>
							确认密码:
						</th>
						<th>
							<input id="pwd2" type="text"/>
						</th>
						<th>
							<span id="pwdError"></span>
						</th>
					</tr>
					<tr>
						<th>
							邮箱:
						</th>
						<th>
							<input id="email" type="email"/>							
						</th>
						<th>
							<span id="emailnameError"></span>
						</th>
					</tr>
					<tr>
						<th>
							注册或重置
						</th>
						<th>
							<input id="update" type="button" value="注册"/>
							<input type="reset" value="重置"/>
						</th>
					</tr>
				</form>
			</table>
		</div>
		<div>
			<table>
				<form>
					<tr>
						<th>
							<th>
								<input type="checkbox" name="aihao"/>抽烟
							</th>
							<th>
								<input type="checkbox" name="aihao"/>喝酒
							</th>
							<th>
								<input type="checkbox" name="aihao"/>烫头
							</th>
						</th>
					</tr>
					<tr>
						<th>
							<th>
								<input type="checkbox" id="firstCheck"/>全选
							</th>
						</th>
					</tr>
				</form>
			</table>
		</div>
		<div>
			<select id="provinceList">
				<option selected>请选择省份</option>
				<option value="河北省">河北省</option>
				<option value="河南省">河南省</option>
				<option value="山东省">山东省</option>
				<option value="山西省">山西省</option>
				<option value="陕西省">陕西省</option>
			</select>
			<input type="button" value="获取时间" id="GetTime"/>
			<input type="button" value="扎瓦鲁多" id="World!"/>
		</div>
		<div id="TimeDiv"></div>
		<input type="button" value="关闭" id="closeDE"/>
		<input type="button" id="chooseD" value="确认"/>
		<a href="file:///C:/Users/15713/Desktop/Demo/New.html">跳转页面</a>
		<input type="button" value="前进" id="forwords"/>
		<input type="button" value="百度" id="goBaidu">
		<input type="button" value="设置顶级窗口" id="setWindow"/>
	</body>
</html>

标签:function,DOM,JavaScript,window,getElementById,innerText,BOM,var,document
From: https://blog.51cto.com/u_16322355/8318533

相关文章

  • JavaScript--事件监听
     事件绑定 dom属性绑定  <inputtype="button"id="btn"value="点我">  <script>    //document.getElementById('myImgine').src='images/open.jpg';    document.getElementById("btn&......
  • JavaScript-3
    JavaScript-3onmousemove该事件将会在鼠标在元素中移动时被触发<style>#a1{width:200px;height:100px;border:2pxsolidred;}#a2{width:200px;height:50px;border:2pxsolid#14dc2f}</style>......
  • Java基础、MySQL数据库、Web前端(HTML、CSS、JavaScript)
    一、选择题(每题1分,共20题,共20分),注:可能有多选哦!1、在Java中,下列标识符不合法的有(   )A.newB.$UsdollarsC.1234 D.car.taxi2、定义了int型二维数组int[][]a=newinta[6][7]后,数组元素a[3][4]前的数组元素个数为(  )  A.24 B.25 C.18 D.173、下面程序的运行结果是( ......
  • js执行的比dom渲染快很多,执行完一定的js才在页面渲染一次dom,UI渲染是宏任务
    假设HTML有一个按钮id为btn,经过以下操作最终会变成什么颜色?document.getElementById('btn').style='background:blue';document.getElementById('btn').style='background:red';Promise.resolve().then(()=>{document.getElementById('......
  • 关于W3C制定的 JavaScript 标准事件模型,先事件捕获从windows > document 往下级直到
    关于W3C制定的JavaScript标准事件模型,先事件捕获从windows>document往下级直到特定的事件节点,然后进行事件处理,再事件冒泡,从特定节点往上级,这个完整的过程dom2规定的事件流包括3个阶段:①事件捕获,②处于目标阶段(事件处理),③事件冒泡阶段。DOM2级事件"规定事件流的三个阶......
  • 与其他 IEEE 754 表示浮点数的编程语言一样,JavaScript 的 number 存在精度问题,比如 0.
    与其他IEEE754表示浮点数的编程语言一样,JavaScript的number存在精度问题,比如0.2+0.4的结果是0.6000000000000001。以下选项中,能得到0.6的是?AparseFloat(0.2+0.4)BparseFloat((0.2+0.4).toFixed(1))CMath.round(0.2+0.4)DparseFloat((0.2+0.6).toPrec......
  • China's Wisdom for Water Pollution Control
    一、BasicmethodsforwaterpollutioncontrolThepurposeofwastewatertreatmentistoseparatethepollutantsinthewastewaterinacertainway,ordecomposethemintoharmlessandstablesubstances,sothatthesewagecanbepurified.Generally,itis......
  • JavaScript中如何终止forEach循环?
    在JavaScript中,forEach方法是用于遍历数组的,通常没有直接终止循环的机制。然而,我们可以使用一些技巧来模拟终止forEach循环。以下是几种常见的方法1.使用return语句:在forEach回调函数内部使用return语句可以实现类似终止循环的效果。当需要终止循环时,可以在回调函数中返回false......
  • JavaScript--DOM概述&Element对象获取与使用
      通过DOM对HTML进行操作  1、获取Element对象 2、常见的HTMLElement对象的使用查看文档:https://www.w3cschool.cn/jsref/<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"conten......
  • JavaScript--定时器案例
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title><......