Python全栈 Web(JavaScript DOM树、DOM对象、BOM对象)

简介: 外部对象: BOM和DOM BOM: Browser Object Module 浏览器对象模型 将浏览器比喻成一个对象-window (网页初始化自动创建) 可以通过window对象操作浏览器 DOM: Document Object .

外部对象:
BOM和DOM
BOM:
Browser Object Module
浏览器对象模型
将浏览器比喻成一个对象-window (网页初始化自动创建)
可以通过window对象操作浏览器
DOM:
Document Object Module
文档对象模型
将HTML文档比喻成一个对象-document( 是window的一个属性
可以灵活的操作网页上的内容 
window对象(BOM模型)
表示浏览器
window下的属性和方法在使用时 可以省略window.直接去调用
例如:
window.alert() --> alert()
window.prompt()-->pormpt()
...
window中的对话框:
警告框:
window.alert()/alert()
输入框:
window.prompt()/prompt()
确认框:
window.confirm("")/confirm("")
如果点击 确定按钮 返回 True
其他操作全部返回 False
window中的定时器;
1.周期性定时器:
每间隔多长时间 就执行一段程序 反复执行
声明:
var ret = window.setInterval(fun, time)
fun:
函数 要周期执行的操作 可以是匿名函数
time:
要间隔的时间周期 以毫秒为单位
ret:
返回值 返回已经创建好的周期定时器对象
清除定时器:
window.clearInterval(obj)
obj:
要停止的周期定时器对象
2.一次性定时器;
在指定时间间隔后  只执行一次操作
声明:
var ret = setTimeout(fun, time);
fun:
函数 要执行的操作 可以是匿名函数
time:
要等待的时间 以毫秒为单位
ret:
返回值 已经创建好的一次性定时器对象
清除定时器:
clearTimeout(obj);
obj:要停止的一次性定时器对象
window中的属性:
1.screen属性:
获取客户端显示器的相关信息
screen的属性:
width、 height
获取屏幕分辨率
availwidth、avalheight
获取可用分辨率
2.history属性:
处理当前窗口所访问的url地址
history的属性方法
属性:
length  表示当前窗口所访问过的 url数量
方法:
back()   后退
forward  前进
go(num)
在当前页面的基础上进行前几后后退num步
正数前进
负数后退
3.location属性;
表示浏览器上的地址栏信息
location的属性方法
属性:
href:
表示当前窗口中正在浏览的 网页地址
如果为 href属性赋值的话,相当于 实现的浏览的跳转功能
  方法:
  reload()
  重新加载当前网页 等同于刷新
  4.navigator属性:
  封装了浏览器的相关信息
  navigator的属性
  userAgent:
  显示浏览器相关信息
  5.document属性

document 属性/对象(DOM模型):
document 的概述:
document对象 是DOM模型中的顶层对象 封装了所有的和HTML元素相关的
属性 方法以及事件  由于 document是属于window对象的核心属性之一
所以不用声明就可以直接使用

DOM树:
网页加载的时候,会在 内存中形成一颗节点树(DOM树)
DOM树会封装网页上的所有内容 包括每一个元素、属性、文本
都是DOM树上的 一个独立节点


DOM所提供的操作:
查找节点的操作方法
读取节点的信息
修改节点的信息
删除节点
创建节点
注意;
只要DOM树上的节点发生变化 网页就会跟着变化( 实时更新
DOM树上的节点类型:
元素节点:
表示在网页中的一个元素
属性节点:
表示的是元素中的一个属性
文本节点:
表示的是元素中的文本内容
注释节点;
表示网页上的一个注释
文档节点;
表示正HTML文档
查找元素节点:
通过元素的id查找元素节点
前提:元素一定要具备id属性,否则无法查找
方法:
var elem = document.getElementById("元素id");
elem:
返回对应的id的元素在JS中的表现形式-DOM元素/DOM对象
DOM对象的属性:
innerHTML
修改或获取当前DOM对象的HTML文本
innerText
修改或获取当前的DOM对象的普通文
*以上两个属性只对双标记有效
value:
该属性只针对表单控件 允许获取和设置表示控件的值
读取节点的信息:
节点类型;
属性: nodeType
返回值;
1:元素节点
2:属性节点
3:文本节点
8:注释节点
9:文档节点
节点的名称:
属性: nodeName
返回值:
元素节点或属性节点: 返回标签名或属性名
文本节点: #text
文档节点: #document
注释节点: #comment
获取or设置元素节点的属性:
所有元素节点都会具备以下方法,用于操作属性:
方法:
获取指定属性的值
getAttribute("attrName");
atttrName:
要获取的属性名称
返回值:
attrName属性对应的值
修改/设置指定属性的值
setAttribute("attrName", "arrtValue");
attrName:
要设置的属性名称
attrValue:
要设置的属性值
删除属性:
removeAttribute("attrNmae")
将attrName从节点中删除
元素节点的样式:
使用setAttribute()设置class属性值
相当于动态的为元素绑定类选择器
elem.setAttribute("class", "类选择器")
使用元素的className属性修改class的值
elem.calssName = "类选择器";
变相的使用内联方式设置样式属性:
elem.style.css属性名 = "值";
注意:
如果属性名包含 “-”的话 ,需要省略 “-”并且后面一个 首字母大写
font-size:
elem.style.fintSize = "18px";

查询节点的方式:
根据id查询
document.getElementById();
根据节点的层级关系查询节点:
parentNode属性:
返回当前节点的父节点元素
childNodes属性:
返回当前节点的所有子元素的数组(返回所有节点)
children属性:
返回当前节点的所有子元素数组(只反回元素节点)
nextSibling属性:
返回当前节点的下一个兄弟节点
nextElementSibling属性:
返回当前节点的下一个元素兄弟节点
previousSibling
返回当前的上一个兄弟节点
previousElementSibling:
返回当前节点的上一个兄弟元素节点

注意:
元素节点 和 节点要区分



1.网页中创建一个 按钮,显示 "关闭"
2.点击按钮时,弹出确认框 "确认关闭网页吗"
3.如果点击 确定的话,则关闭网页
关闭网页:window.close();
4.否则什么都不操作即可

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		var timer;
		function k(){
			confirm("确定?");
		}
		function cls(){
			var bool = confirm("确认关闭吗?");
			if (bool){
				window.close();
			}
		}
		function showTime(){
			timer = setInterval(function(){
				var now = new Date();
				console.log(now.toLocaleString());
			}, 1000);
		}
		function stopTime(){
			clearInterval(timer);

		}
		function gotobaidu(){
			window.location.href = "http://www.tmooc.cn/"
		}
	</script>
</head>
<body>
	<button onclick="k()">确认按钮</button>
	<button onclick="cls()">关闭网页</button>
	<button onclick="showTime()">周期定时器</button>
	<button onclick="stopTime()">清除定时器</button>
	<button onclick="gotobaidu()">href</button>
</body>
</html>

1.创建一个按钮
2.点击按钮时,弹出一个确认框
确认一下是否要关闭网页??
3.如果用户点击确定的话,5s钟之后再关闭网页

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<script type="text/javascript">
		function time_clear(){
			var bool = confirm("是否关闭网页");
			alert("3秒后自动关闭")
			if (bool){
				setTimeout(function(){
					window.close();
				}, 3000);
			}
		}
	</script>
</head>
<body>
	<button onclick="time_clear()">一次性时钟</button>
</body>
</html>

1.创建一个网页
2.创建一个a标记,
链接地址为:http://www.baidu.com
文本:百度
3.创建一个按钮,文本为修改
4.点击按钮时,将 a 标记修改为
链接地址为:https://yq.aliyun.com/users/article?spm
文本:阿里云

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
</head>
<body>
	<script type="text/javascript">
		function updA() {
			var a = document.getElementById("anchor");
			a.innerText = "阿里云";
			a.setAttribute("href", "https://yq.aliyun.com/users/article?spm");
			a.setAttribute("target", "_blank");
		}
	</script>
	<a href="http://www.baidu.com" id="anchor">百度</a>
	<button onclick="updA()">修改</button>
	<script src="common.js"></script>
</body>
</html>


相关文章
|
9月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1588 103
|
7月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
359 1
|
8月前
|
数据采集 自然语言处理 Java
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
本文以反面教材形式,剖析了在使用 Playwright 爬取懂车帝车友圈问答数据时常见的配置错误(如未设置代理、Cookie 和 User-Agent),并提供了 Python、Java 和 .NET 三种语言的修复代码示例。通过错误示例 → 问题剖析 → 修复过程 → 总结教训的完整流程,帮助读者掌握如何正确配置爬虫代理及其它必要参数,避免 IP 封禁和反爬检测,实现高效数据采集与分析。
551 3
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
|
9月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
294 23
|
8月前
|
数据采集 Web App开发 JavaScript
Python爬虫如何获取JavaScript动态渲染后的网页内容?
Python爬虫如何获取JavaScript动态渲染后的网页内容?
|
9月前
|
数据采集 人工智能 测试技术
Python有哪些好用且实用的Web框架?
Python 是一门功能强大的编程语言,在多个领域中得到广泛应用,包括爬虫、人工智能、游戏开发、自动化测试和 Web 开发。在 Web 开发中,Python 提供了多种框架以提高效率。以下是几个常用的 Python Web 框架:1) Django:开源框架,支持多种数据库引擎,适合新手;2) Flask:轻量级框架,基于简单核心并通过扩展增加功能;3) Web2py:免费开源框架,支持快速开发;4) Tornado:同时作为 Web 服务器和框架,适合高并发场景;5) CherryPy:简单易用的框架,连接 Web 服务器与 Python 代码。这些框架各有特色,可根据需求选择合适的工具。
517 14
|
11月前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
310 1
打造高效的Web Scraper:Python与Selenium的完美结合
|
10月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
JSON 安全 中间件
Python Web 框架 FastAPI
FastAPI 是一个现代的 Python Web 框架,专为快速构建 API 和在线应用而设计。它凭借速度、简单性和开发人员友好的特性迅速走红。FastAPI 支持自动文档生成、类型提示、数据验证、异步操作和依赖注入等功能,极大提升了开发效率并减少了错误。安装简单,使用 pip 安装 FastAPI 和 uvicorn 即可开始开发。其优点包括高性能、自动数据验证和身份验证支持,但也存在学习曲线和社区资源相对较少的缺点。
561 15

推荐镜像

更多