DOM对象

一,DOM是什么

 DOM:Document Object Model
 文档对象模型,通过DOM可以来任意来修改网页中各个内容

二,DOM的组成


文档
       文档指的是网页,一个网页就是一个文档

 对象
       对象指将网页中的每一个节点都转换为对象

       转换完对象以后,就可以以一种纯面向对象的形式来操作网页了

 模型
       模型用来表示节点和节点之间的关系,方便操作页面

节点(Node)
        节点是构成网页的最基本的单元,网页中的每一个部分都可以称为是一个节点
        虽然都是节点,但是节点的类型却是不同的
        常用的节点

            元素节点(Element),代表网页中的标签
            属性节点(Attribute),代表标签中的属性
            文本节点(Text),代表网页中的文本内容

三,window全局方法 
    var声明变量没有用var声明的变量都是window全局变量
   有id命名的html 节点也是全局变量可以通过window.id名访问
   常用全局方法,都是省路lwindow alert弹框警告,confirm 确     认prompt 弹框 setlerval 间隔调用 setTimeout 延迟调用,          document,is NaN 等

四,screen屏幕 

<h1>screen</h1>
		<a href="history对象.html">screenb</a>
		<button type="button" onclick="goForward()">前进</button>
		<button type="button" onclick="goBack()">后退</button>
			
		<script>
			document.write("</br>屏幕的宽"+screen.width);
			document.write("</br>屏幕的高"+screen.height);
			// 移除状态下的宽高
			document.write("</br>屏幕的宽"+screen.availWidth);
			document.write("</br>屏幕的高"+screen.availHeight);
			// 浏览区可视局域的宽高
			document.write("</br>屏幕的宽"+window.innerWidth);
			document.write("</br>屏幕的高"+window.innerHeight);
			function goForward(){
				history.go(1)
			}
			function goBack(){
				history.go(-1)
			}
		</script>

 五,histor历史记录

历史记录
 history.Forward();
 history.go(1);前进
history.goBack()
history.go(-1);后退
 相对于浏览器的前进后退按钮

<h1>history对象</h1>
	<a href="screen.html">screenb</a>
	<button type="button" onclick="goForward()">前进</button>
	<button type="button" onclick="goBack()">后退</button>
		<script>
		function goForward(){
			history.go(1)
		}
		function goBack(){
			history.go(-1)
		}
		</script>

六,地址栏信息


    reloado 刷新
    reload(true)刷新并强制更新缓存
    href 地址信息(全)http://127.0.01/javascript/index.htm?name=mumu&age=18#good
    protocol 协议 http:
    hostname 域名 127.0.0.1
    port 端口号:8080
    pathname 地址 /avascript/index.html
    search 查询 ?name=mumu&age=18
    hash 哈希值(锚点)《?后面的值)#good

<h1>location</h1>
		<button type="button" onclick="reload()"></button>
		
		
		<script>
			function reload(){
				location.reload();//普通刷新
				// location.reload(true);//更新缓存
			}
			// 解析地址栏信息(路由的时候可以用上,跨域的时候)
			document.write("</br>地址信息"+location.href);
			document.write("</br>协议"+location.protocol);
			document.write("</br>域名"+location.hostname);
			document.write("</br>路劲"+location.pathname);
			document.write("</br>端口号"+location.port);
			document.write("</br>查询"+location.search);
			document.write("</br>哈希"+location.hash);
			
		</script>
		

 7,跳转Navigator

console.log(navigator);

最重要的UA 浏览器的头信息:通常判断是什么浏览器(pc,手机,ios,安卓,谷歌还是Edg...


			var ua = navigator.userAgent;
			document.write("<br/>"+ua);
			// 检测浏览器是否为手机  includes包含  检测浏览器的头信息是否包含Mobile字符串
			if(ua.includes("Mobile")){
				document.write("<br/>手机浏览器")
			}else{
				document.write("<br/>PC浏览器")
			}
			function jump(){
				location.href = "https://www.baidu.com";
			}

八,open方法

关闭打开自身窗口

	<h1>open方法</h1>
		<button  onclick="openWin()">打开窗口</button>
		<button  onclick="closeWin()">关闭窗口</button>


		<script>
			var win

			function openWin() {
				win = window.open("http://www.baidu.com","baidu","width=400,height=400,top=200,left=200")
			}

			function closeWin() {
				win.close();
			}
		</script>

九,事件

1,onload事件 窗口,图片加载完毕触发

	<script type="text/javascript">
			// 在上面时候,页面还没有加载完毕,访问不到myh,也访问不到myh.innerText
			// alert(window.myh.innerText);
			// 等待页面加载完毕后再执行 访问节点的操作
			
			// id命名的html节点是全局window的子对象可以直接访问
			
			
			// 在head 里面的script执行代码的时候,body,h1 p都还没有加载
			// myh是访问不到的
			// 我们需要等待整个页面加载完毕后再去访问myh
			window.onload =function(){
				// 当窗口加载完毕执行这个function
				console.log("窗口加载完毕");
				// 窗口加载完毕,可以访问myh
				console.log(myh.innerText);
			}
		</script>
	</head>
	<body>
		<h1 id="myh">windows 常用事件</h1>
		<p>onload,onscroll onresize</p>
		<script>
			// alert(window.myh.innerText);
			// 
		</script> 
	</body>

2,onscroll事件 滚动时候触发

        // 页面垂直滚动距离  document文档 documenElement根节点
            // scrollTOP 垂直 scrollLeft水平滚动

<script>
			Window.onscroll=function(){
				
				console.log('页面滚动了')
			}
			var t=documen.documenElement.scrollTop;
			// 页面垂直滚动距离  document文档 documenElement根节点
			// scrollTOP 垂直 scrollLeft水平滚动
			console.log(t);
		</script>

3,resize当窗口发生大小变化

<h1>resize</h1>
		<script>
			// 当窗口发生大小变化时候,向页面写入窗口可视区域的宽高
			// window.onresize = function(){
			// 	console.log("窗口的大小发生了变化");
			// 	console.log("宽:"+window.innerWidth+",高:"+window.innerHeight)
			console.log("宽:1920,高:1080")
			
			// }
			// 我是中国人,我爱中国
			var1 = "湖南"
			var s2 = "爱";
			var str = "我是"+s1+"人,我"+s2+"中国";
			console.log(str)
		</script>

十,编码

常见编码:utf-8万国码 gb2312国标 gbk中文包含繁体字

  • 为什么需要编码:互联网是全世界的,中国人用中文,阿拉伯,用阿拉伯文
  • 阿拉伯人电脑用中文字体 识别失败
  • 国际上用万国编码 utf-8
  • 对一些特殊的还是需要手动转义 地址就需要转换
  •  encodeURI 把字符串转换为浏览器地址可以识别的字符
  •  console.log(window.encodeURI());
  • %E4%B8%AD%E5%9B%BD
  • 把url编码的字符转换为普通字符串
  • console.log(decodeURI("%E4%B8%AD%E5%9B%BD"))
  • encodeURIComponent会转义标点符号 decodeURIComponent
	<h1>字符串编码</h1>
		<p>utf-8,gb2312,xxxx</p>
		<script>
			// http://127.0.0.1:8848/javascript/demo10-%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%BC%96%E7%A0%81.html 
			// 为什么需要编码:互联网是全世界的,中国人用中文,阿拉伯,用阿拉伯文
			// 阿拉伯人电脑用中文字体  识别失败 
			// 国际上用万国编码 utf-8
			// 对一些特殊的还是需要手动转义 地址就需要转换
			// var str = "中国";
			// encodeURI 把字符串转换为浏览器地址可以识别的字符
			// console.log(window.encodeURI(str));
			// %E4%B8%AD%E5%9B%BD 
			// 把url编码的字符转换为普通字符串
			// console.log(decodeURI("%E4%B8%AD%E5%9B%BD"))
			var str = ",!"; //encodeURI默认是不会转义标点符号
			// encodeURIComponent会转义标点符号 decodeURIComponent
			console.log(window.encodeURIComponent(str));
		</script>

 11,图片预览

<h1>图片预览</h1>
		<input type="file" name="" id="myf" value="" onchange="preImg()" multiple />
		<img src="" width="50%" id="mypic"/>	 
		 <!-- onclick 被点击,onchange值发生变化了 -->
		<script>
	       //用户选择图片时候能预览图片
		   function preImg(){
			   // 拿到图片文件
			   var file = myf.files[0];
			   // 把图片文件转换为base64字符串
			   // create创建Object对象URL字符串编码
			   var src = window.URL.createObjectURL(file);
			   // 定义图片的src
			   mypic.src = src;
		   }
		</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值