BOM:Browser Object Model  浏览器对象模型

   2.组成:
window :窗口对象
1.创建:
2.方法:
*与弹出框有关
1.alert(); 弹出警告框
2.confirm(); 显示带有一段消息和确认按钮的对话框
如果用户点击确定按钮则方法返回true,如果用户点击取消按钮,则方法返回false
  //confirm练习
var flag = confirm("您确定要退出吗?");
if(flag){
//退出操作 alert("欢迎再次光临") }else{
//提示
alert("手抖了吗");
}
              3.prompt(); 显示可提示用户输入的对话框
返回值,用来回去用户输入的信息
  //prompt练习 输入框
var result = prompt("请输入用户名");
alert(result);  *与打开关闭有关的方法
1.close();关闭浏览器窗口
当前窗口,谁调用我,我关谁
2.open();打开一个新的浏览器窗口
返回新的window 对象
 //打开一个新窗口

      <input id="openBtn" type="button" value="打开窗口">
<input id="closeBtn" type="button" value="关闭窗口">
var newWindow;
var openBtn = document.getElementById("openBtn");
openBtn.onclick=function(){
//打开窗口
newWindow= open("http://www.baidu.com");
}
//关闭
var closeBtn = document.getElementById("closeBtn");
closeBtn.onclick=function(){
//关闭窗口
newWindow.close();
}
            *与定时器有关的
1.setTimeout(); 在指定的毫秒数后调用函数或计算表达式
clearTimeout();取消上述
参数:
1.js代码或方法对象
2.毫秒值
返回值:
唯一标号,用于取消定时器 2.setInterval();指定周期
clearInterval();取消

 //一次性的定时器
var id = setTimeout("alert('boom~~~')",3000); //取消
clearTimeout(id)
function fun(){ alert('boom~~~~~');
}
//循环定时器
setInterval(fun,2000); //每隔2秒出现弹框

定时


          3:属性:
1.获取BOM对象
history
location
Navigator
Screen
2.获取Dom对象
document 4.特点:
不需要创建,直接使用window使用 window.方法名();
window引用可以省略.
       Location : 地址栏对象
           方法:
* 1.reload 刷新
* 2.href :跳转

 var btn = document.getElementById("btn");
btn.onclick=function(){
location.reload(); } var href = location.href;
var gotobaidu = document.getElementById("gotobaidu");
gotobaidu.onclick=function(){ location.href="https://www.baidu.com"; }

简单的刷新跳转

           Navigator :浏览器对象

Screen: 显示器屏幕对象
History : 历史记录对象
              属性:
* length 返回当前窗口历史列表中的url值.
 var btn = document.getElementById("btn");
btn.onclick =function(){ var length = history.length;
alert(length) }

 document  文档对象

1.创建
window.document
document
2.方法
1.获取Element对象
1.getElementByIdById();根据id属性直接获取元素对象,id一般唯一
2.getElementsByTagName();根据元素名称获取元素名称们,返回值是一个数组
3.getElementsByClassName();根据class属性值获取元素对象们
4.getElementsByName();根据name属性获取元素对象们
 <div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div> <div class="cls1">div4</div>
<div class="cls1">div5</div> <input type="text" name="username">
<script>
//1.
//2.
var divs = document.getElementsByTagName("div");
alert(divs.length); //
var cls1 = document.getElementsByClassName("cls1");
alert(cls1.length); //4.
var user = document.getElementsByName("username");
alert(user.length); </script>

 2.创建其他DOM对象
createAttribute(name)
createComment()
createElement()
createTextNode()
3.属性
. Element 元素对象
1.获取/创建:通过document来获取和创建
2.方法:
1.removeAttribute();:删除属性
2.setAttribute(): 设置属性
Node:节点对象,其他的5个父对象
  Element对象
   <a>点我试一试</a>
<input type="button" id="btn_set" value="设置属性">
<input type="button" id="btn_remove" value="删除属性">
<script>
//获取btn
var btn_set = document.getElementById("btn_set");
btn_set.onclick=function(){
//获取a标签
var element = document.getElementsByTagName("a")[0];
element.setAttribute("href","https://www.baidu.com");
} var btn_remove = document.getElementById("btn_remove");
btn_remove.onclick=function(){
//获取a标签
var element = document.getElementsByTagName("a")[0];
element.removeAttribute("href");
} </script>

 Node 节点对象

节点对象 :其他5个的父对象
特点:所有dom对可以认为是一个节点
方法:
CRUE dom 树:
appendChild():向节点的子对象列表的节点添加字节点
removeChild():删除并返回当前节点的指定子节点
replaceChild():替换

 <title>节点对象</title>
<style>
div{
border: 1px solid red;
}
#div1{
width: 200px;
height: 200px;
}
#div2{
width: 100px;
height: 100px;
}
#div3{
width: 120px;
height: 120px;
color: aqua;
} </style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
div1
</div>
<a href="JavaScript:void(0)" id="del">删除div的子节点</a>
<a href="JavaScript:void(0)" id="add">增加div的子节点</a>
<!--<button id="del">删除子节点</button>-->
<script>
var element_a = document.getElementById("del");
element_a.onclick=function () { var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
div1.removeChild(div3) }
var element_add = document.getElementById("add");
element_add.onclick=function () { var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
var div3 = document.createElement("div");
div3.setAttribute("id","div3");
div1.appendChild(div3); }
</script>

节点对象

事件对象系统学习
事件:操作
事件源:组件
监听器:代码
注册监听:将事件,事件源,监听器结合在一起 常见的事件:
1.点击事件
onclick:单击事件
ondblclick:双击事件
2.焦点事件
onblur:失去焦点 一般用于表单校验
onfocus:元素获得焦点 3.加载事件
onload:一张页面或一幅图像加载完成后实现
4.鼠标事件
onmousedown:鼠标按钮被按下
*定义方法时,定义一个形参,结束event对象
*event对象的button属性可以获得鼠标的哪个键被点击了
onmousemove:鼠标被移动
onmouseout:鼠标从某元素被移开
onmouseover:鼠标移动到某元素上
onmouseup:鼠标按键被松开 5.键盘事件
onkeydown:键盘某个按键被按下
onkeyup:键盘按键被松开
onkeypress:某个按下并松开
6.选择和改变
onchange:域的内容被改变
onselect:文本被选中
7,表单事件
onsubmit:确认按钮被点击,表单提交
可以阻止表单的提交,校验表单
onreset:重置

 //加载事件
window.onload=function(){
//失去焦点事件
document.getElementById("username").onblur=function(){
alert("失去焦点了");
}
//鼠标移到元素之上
document.getElementById("username").onmouseover=function(){
alert("鼠标来了");
}
//鼠标点击事件
document.getElementById("username").onmousedown=function(event){
//alert("鼠标点击了");
alert(event.button);
}
//键盘被点击事件
document.getElementById("username").onkeydown=function(event){
//alert("键盘按了");
if (alert(event.keyCode==13)){
alert("提交表单");
}
}
//改变了触发
document.getElementById("username").onchange=function(event){
//alert("键盘按了"); alert("改变了...");
}
document.getElementById("city").onchange=function(event){
//alert("键盘按了"); alert("改变了...");
} } //表单校验
document.getElementById("from").onsubmit=function(){
//
var flag=true; return flag; } </script>

事件的简单案例

       



JS 浏览器BOM的更多相关文章

  1. JS浏览器BOM

    浏览器对象模型 (BOM)  BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象.这意味着在网页中定义的任何对象,变 ...

  2. JavaScript基础16——js的BOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Js浏览器对象

    Js浏览器对象——window对象 1.window对象: (1)window对象是BOM的核心,window对象指当前的浏览器窗口. (2)所有的JavaScript全局对象.函数以及变量均自动成为 ...

  4. JS浏览器对象:window对象、History、Location对象、Screen对象

    一.JS浏览器对象-window 1.window对象 window对象是BOM的核心,window对象指当前的浏览器窗口 所有JavaScript全局对象.函数以及变量均自动成为window对象的成 ...

  5. JS基础-BOM

    BOM BOM 是 browser object model 的缩写, 简称浏览器对象模型. 主要处理浏览器窗口和框架, 描述了与浏览器进行交互的方法和接口, 可以对浏览器窗口进行访问和操作, 譬如可 ...

  6. JS的BOM操作语法

    整理了一下JS的BOM操作语法,这里记录一下. <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...

  7. js,bom,dom(相信我,你看不懂我写的)

    js dom bom 2种结合方式: 1.在body中加入script标签,<script type="text/javascript" >alert(" 向 ...

  8. atitit.js浏览器环境下的全局异常捕获

    atitit.js浏览器环境下的全局异常捕获 window.onerror = function(errorMessage, scriptURI, lineNumber) { var s= JSON. ...

  9. JS神经网络deeplearn.js:浏览器端机器智能框架

    JS神经网络deeplearn.js:浏览器端机器智能框架 通过 deeplearn.js,可以实现在浏览器中训练神经网络模型,也可在推理阶段运行预训练模型. deeplearn.js 以 TypeS ...

随机推荐

  1. Android 本地缓存Acache的简单使用

    设置缓存数据: ACache mCache = ACache.get(this); mCache.put("key1", "value"); //保存6秒,如果 ...

  2. 使用正则表达式限制<kbd>QLineEdit</kbd>不能输入大于某个整数

    使用正则表达式限制QLineEdit不能输入大于某个整数,即:使用正则表达式,匹配不大于某个整数 举例:匹配不大于4567 * 原理分析: 匹配不大于4567这个数,所以第一个想到的是只要小于4567 ...

  3. (转)mybatis一级缓存二级缓存

    一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言.所以在参数和SQL完全一样的情况下,我们使用同一个SqlSess ...

  4. CentOS7 更改默认启动桌面(或命令行)模式

    centos7以后是这样的,7以前就是别的版本了 1.systemctl get-default命令获取当前模式 2.systemctl set-default graphical.target 修改 ...

  5. 第三篇 Scrum冲刺博客

    一.会议图片 二.项目进展 成员 完成情况 今日任务 冯荣新 商品列表,商品详情轮播图 商品底部工具栏,购物车列表 陈泽佳 历史足迹,静态页面 渲染搜索结果,防抖的实现 徐伟浩 未完成 商品信息录入 ...

  6. 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发

    蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...

  7. CODING DevOps 代码质量实战系列第二课: PHP 版

    讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.T ...

  8. 小案例-WebSocket实现简易聊天室

    前言 在详解 HTTP系列之一讲到HTTP/2.0 突破了传统的"请求-问答模式"这一局限,实现了服务器主动向客户端传送数据.而本章将通过一种在单个TCP连接上进行全双工通信的协议 ...

  9. 【Gin-API系列】Gin中间件之鉴权访问(五)

    在完成中间件的介绍和日志中间件的代码后,我们的程序已经基本能正常跑通了,但如果要上生产,还少了一些必要的功能,例如鉴权.异常捕捉等.本章我们介绍如何编写鉴权中间件. 鉴权访问,说白了就是给用户的请求增 ...

  10. Android Studio出现:Your project path contains non-ASCII 错误代码解决方法

    导入Project的出现: Error:(1, 0) Your project path contains non-ASCII characters. This will most likely ca ...