BOM:browser object module  浏览器对象模型

BOM 主要处理浏览器窗口和框架 。

window对象

open、close

打开(关闭)新的页面,窗口

 <script type="text/javascript">//window对象//  close方法 => 关闭当前窗口function close2(){window.close();            }// open方法  => 打开一个新的窗口//参数1: 打开的url//参数2: 窗口名称=> name属性//参数3: 窗口的特征=> 长宽(其他属性未必好使)...//参数4: 是否将新窗口的地址加入到浏览器历史记录中// 返回值: 返回一个window对象. 新打开的窗口的window对象function open2(){window.open("../猜数字.html", "",'width=100,height=100');}</script><body><input type="button" onclick="close2();"  value="关闭当前窗口"  /><input type="button" onclick="open2();"  value="打开猜数字窗口"  /></body>

点击关闭,关闭当前页面

定时器

通俗说就是每隔,多长时间执行一次

 <script type="text/javascript">//window对象//定时器方法// setInterval  设置定时器// clearInterval 清除定时器//-----------------------------------------------//参数1: 可以是一段string, 内容是js代码//参数2: 毫秒单位的时间//返回值: 当前开启的定时器id// 功能: 每个参数2毫秒,执行参数1代码.var id = window.setInterval("alert('abc');", 2000);//------------------------------------------------function stop(){window.clearInterval(id);}</script></head><body><input type="button" onclick="stop();"  value="停止"  /></body>

没隔两秒,弹一次 哈哈,有没有觉得很烦啊,点击停止就ok啦

延时器

当指定的时间到了之后,才执行,而且执行一次就ok啦

 //window对象//定时器方法// setTimeout  设置定时器// clearTimeout 清除定时器//-----------------------------------------------//参数1: 可以是一段string, 内容是js代码//参数2: 毫秒单位的时间//返回值: 当前开启的定时器id// 功能:参数2毫秒后,执行参数1代码(只执行一次).var id = window.setTimeout("alert('abc');", 2000);//------------------------------------------------function stop(){window.clearTimeout(id);}</script></head><body><input type="button" onclick="stop();"  value="停止"  /></body>

定时器扩展

<script type="text/javascript">//window对象function fun1(){alert("fun1!!!!");}//参数1: 也可以接受一个函数类型的对象// 如下两行代码,执行效果是一样的var id=window.setInterval(fun1, 2000)//window.setInterval("fun1()", 2000)function stop(){window.clearInterval(id);}</script></head><body><input type="button" onclick="stop();"  value="停止"  /></body>

注意,刚开始笔者没写停止函数,要疯了都,不断弹窗,而且怎么停止也关不掉,那感觉你懂得,当然不是浏览器,是编辑器,好了

前进和后退

 <script type="text/javascript"></script></head><body><a href="06-history对象02.html" >06-history对象02.html</a><input type="button" onclick="window.history.forward()"  value="前进"  /><input type="button" onclick="window.history.go(1)"  value="前进"  /></body>

必须要有打开过,有历史记录,才可以前进和后退的,不然也没效果

这里可以先点击a链接,就可以啦

06-history对象02.html代码

 <script type="text/javascript"></script></head><body><input type="button" onclick="window.history.back()"  value="后退"  /><input type="button" onclick="window.history.go(-1)"  value="后退"  /></body>

DOM:Document object module  文档对象模型

DOM 将把整个页面规划成由节点层级构成的文档

DOM个人觉得掌握 如何获取对象和基本事件,以及元素的增删改查,基本ok了

dom对象的获取

 <script type="text/javascript">// 浏览器把 dom的定点对象 Document对象的引用交给了 window对象//代码:window.document//document    var doc = window.document;//alert(doc);//element 的获得 (重点)var div1 = document.getElementsByTagName("div")[0];var div2 = document.getElementById("one");var div3 = document.getElementsByClassName("two")[0];var div4 = document.getElementsByName("three")[0];alert(div3 == div4);</script>

事件1

Onclick 事件点击

 <body><input type="button" value="点我" id="one" onclick="alert('heihei')" /></body><script type="text/javascript">//演示 给id为one的 按钮 添加事件的方法//方式1:    /* //1 获得要添加的元素对象var one = document.getElementById("one");//2 添加事件函数属性one.onclick=function(){alert("haha");} *///方式2:// <input type="button" value="点我" id="one" onclick="alert("heihei")" /> </script>

事件2

onblur、onfocus 焦点得到失去事件

<script type="text/javascript">var one = document.getElementById("one");one.onblur=function(){alert("失去焦点!");}one.onfocus=function(){alert("得到焦点!");}</script>

事件3

onchange  值发生改变事件

 <body><input type="text" id="one"  /><select id="two" ><option>大专</option><option>本科</option></select></body><script type="text/javascript">var one = document.getElementById("one");one.onchange=function(){alert("被改变了!");}var two = document.getElementById("two");two.onchange=function(){alert("被改变了!");}</script>

事件4

onkeydown、up 、press

按键事件

<script type="text/javascript">/*  onkeydown 某个键盘按键被按下。 3 1 No Yes onkeypress 某个键盘按键被按下并松开。 3 1 9 Yes onkeyup 某个键盘按键被松开。 3 1 9 Yes  *///event => 封装了事件发生的详情//keyCode属性 => 按下按键的unicode码var one = document.getElementById("one");one.onkeydown=function(event){//1 获得摁下的按键var key = event.keyCode;//2 判断按键按下的是否是回车if(key==13){//是=>表单提交alert("表单被提交了");                 }}</script>

事件5

onload

页面加载事件

  </head><script type="text/javascript">//onload 当页面加载完成时触发</script><body onload="alert('haha');" ><input type="text" id="one"  /></body>

事件6

onmousedown、out、over、move

鼠标按下、松开、从某元素移开、移到某一元素

 <style type="text/css">div{border:1px red solid;width:300px;height: 300px;}</style></head><body  ><div id="one"></div></body><script type="text/javascript">/*  onmousedown 鼠标按钮被按下。 4 1 9 Yes onmouseup 鼠标按键被松开。onmouseout 鼠标从某元素移开。 4 1 9 Yes onmouseover 鼠标移到某元素之上。 3 1 9 Yes onmousemove 鼠标被移动。 3 1 9 Yes */var one = document.getElementById("one");/*     one.onmousedown =function(event){alert(event.button);}one.onmouseout =function(event){alert("onmouseout");}one.onmouseover =function(event){alert("onmouseover");} */one.onmousemove =function(event){alert(event.clientX+"==>"+event.clientY);}</script>

事件7

onsubmit、event.preventdefault

表单提交、阻止默认事件的发生

  <body  ><form action="#" id="one"  >用户名:<input type="text" /><br><input type="submit" value="提交" /></form></body><script type="text/javascript">//onsubmit 当表单提交时触发//作用: 表单验证//onsubmit="return fun();"var one = document.getElementById("one");one.onsubmit = function (event){//校验//校验通过alert("校验不通过!");//校验不通过 => 拦截表单提交//return false;// 阻止默认事件的发生event.preventDefault();} </script>

事件8

event.stopPropagation

阻止事件继续传播

 <style type="text/css">div{border:1px red solid;}#one{width:300px;height: 300px;}#two{width:100px;height: 100px;}</style></head><body  ><div id="one"><div id="two"></div></div></body><script type="text/javascript">//event.stopPropagation();//阻止事件的继续传播document.getElementById("two").onclick=function (event){alert("two");event.stopPropagation();}document.getElementById("one").onclick=function (){alert("one");}</script>

补充一下吧:

CRUD:元素的增删改查

<!--加入样式表-->
<style type="text/css">
div {border:#0099FF 1px solid;height:60px;width:120px;margin:20px 0px 20px 20px;padding:10px 0px 0px 20px;}#div_1{background-color:#00FFFF;}#div_2{background-color:#FF3399;}#div_3{background-color:#0000FF;}#div_4{background-color:#FFFF66;}
</style></head><body><div id="div_1"></div><div id="div_2">div区域2</div><div id="div_3">div区域3</div><div id="div_4">div区域4</div><hr /><input type="button" value="创建并添加节点" onclick="addNode()" /><input type="button" value="删除节点" onclick="deleteNode()" /><input type="button" value="替换节点" onclick="updateNode()" /><input type="button" value="克隆节点" onclick="copyNode()" /></body>
<script type="text/javascript">//创建并添加节点function addNode(){// 1 创建A标签对象   <a></a>var a = document.createElement("a");// 2 为创建的a标签增加属性a.setAttribute("href", "http://www.itcast.cn");// 3 为a标签添加标签体a.innerHTML = "点我";// 4 找到div标签var div_1 = document.getElementById("div_1");// 5 添加div_1.appendChild(a);}//删除节点function deleteNode(){//1 获得要删除的divvar div_2 = document.getElementById("div_2");//2 获得div的父元素var parent = div_2.parentNode;//3 通过爹删除孩子parent.removeChild(div_2);}//替换节点function updateNode(){//1 获得被替换的divvar div_3 = document.getElementById("div_3");//2 创建img元素对象<img />var img = document.createElement("img");//3 为img添加属性img.setAttribute("src", "mn.jpg");img.setAttribute("width", "300");//4 找到爹var parent = div_3.parentNode;//5 替换parent.replaceChild(img, div_3);}//克隆节点function copyNode(){// 1.获得div4var div_4 = document.getElementById("div_4");// 2.调用克隆方法克隆var div_copy = div_4.cloneNode(true);// 3.获得父亲\var parent = div_4.parentNode;// 4.添加到最后一个div之前//parent.appendChild(div_copy);parent.insertBefore(div_copy, div_4);}
</script>

好吧,其实我已经非常努力的在写了,看不懂的话,我只能说:怪我咯 ,哈哈哈,最后愿你能够早日实现你的梦想。

web前端之js快速入门(BOM和DOM)相关推荐

  1. web前端之js快速入门(ECMAscript)

    javascript:首先和java没有任何关系,蹭热度.... 静态网页组成:结构(html).样式(css).动作(javascript 简称 js). 详细教程地址:菜鸟教程 - 学的不仅是技术 ...

  2. web前端之css快速入门

    css:又称层叠样式表 具体英文单词(好吧,我又不是学英文) w3c,中文也称之为万维网.网页地址:http://www.w3school.com.cn/ 里面包最详细的教程,但是前提你愿意花费那么多 ...

  3. 54 Node.js快速入门

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.Node开发概述 1.1 为什么要学习服务器端开发基础 能够与后端程序员更加紧密的配合 ...

  4. 好程序员web前端分享js剪切板Clipboard.js 使用

    好程序员web前端分享js剪切板Clipboard.js 使用,clipboard.js是一个用来设置剪切板的库,小巧无依赖,但用法有点诡异,必须依赖一个DOM元素. 必须要与一个DOM元素相关联,并 ...

  5. 好程序员web前端分享JS引擎的执行机制

    好程序员web前端分享JS引擎的执行机制,请先着重牢记两点!JS是单线程语言. JS的EventLoop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的eventloop. 1.灵魂三问: ...

  6. TensorFlow.js快速入门

    by Pau Pavón 通过保罗·帕文(PauPavón) TensorFlow.js快速入门 (A quick introduction to TensorFlow.js) TensorFlow ...

  7. (vue基础试炼_01)使用vue.js 快速入门hello world

    文章目录 一.需求案例 二.案例实现 2.1. 原始js写法 2.2. 怎样使用vue.js ? 2.3. 使用vue.js 写法 三.案例vue简述? 四.案例趣味延伸 五.表达值作用及嘱咐语 一. ...

  8. Web前端-Vue.js必备框架(一)

    Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head><meta char ...

  9. Web前端,JS基础之ATM取款机案例

    前言 持续学习总结输出中,今天分享的是Web前端,JS基础之ATM取款机案例 需求 用户在ATM取款时可以选择存钱.取钱.查看余额和退出功能 分析 1.循环的时候,需要反复提示输入框,所以提示框写要到 ...

最新文章

  1. java静态链表_用Java实现一个静态链表
  2. C++ Primer 5th笔记(chap 14 重载运算和类型转换)成员运算符
  3. mysql5.7.18压缩包下载_Centos7搭建Mysql5.7数据库
  4. PHP红黑源码,红黑树的实现源码(第二次修订版)
  5. python等待用户输入_Python等待时间,等待用户输入
  6. LOJ2001 SDOI2017 树点涂色 LCT、线段树
  7. LQR控制算法的浅析
  8. 视频教程-【曾贤志】Excel函数视频教程-Office/WPS
  9. threejs特效:选中效果
  10. matlab电解电容在哪,基于MATLAB的电容器直流局部放电检测.pdf
  11. 4种常见分支模式解析及优劣对比 | 研发效能提升36计
  12. 头歌实训平台C语言答案
  13. 分类classify
  14. python 取整法(进一取值)
  15. 深层揭露百度缘何被黑
  16. 聊聊AppDelegate解耦
  17. Core Fusion- Accommodating Software Diversity in Chip Multiprocessors .md
  18. luogu3371 :【模板】单源最短路径(弱化版):图论+spfa
  19. matlab初始化很久,【原创】Matlab初始化initializing极慢解决方法
  20. 运用深度学习预测肺癌

热门文章

  1. 这个 HTTP 实战项目,帮你理清 Go 网络编程的底层逻辑
  2. 如何在Linux开启HTTP服务,小技巧:如何快速开启一个静态 HTTP 服务?
  3. 关于Sleuth的几个问题
  4. springboot整合mongodb changestream
  5. aop源码分析之 —— 创建代理对象
  6. 零日攻击的原理与防范方法
  7. NAT原理?代理服务器原理?
  8. atitit,it人怎么样才容易事业成功?? 有以下五种性格的人容易成功
  9. 分项:我从世界上最成功的人身上学到的10件事
  10. Android -- 图片画画板(canvas、paint、bitmap)