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. 关于数据库新建用户提示“用户、组或角色‘’XXX‘’在当前数据库中已已存在”的解决办法

    一般在还原数据库后,给这个数据库添加一个登录名时出现. 例如数据库备份文件中已经包含了用户abc,现在还原了数据库,然后发现现有数据库中没有abc这个用户,想要新建一个abc用户,作为该数据库的own ...

  2. 初识ABP vNext(4):vue用户登录&菜单权限

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 登录 菜单权限 运行测试 最后 前言 上一篇已经创建好了前后端项目,本篇开始编码部分. 开始 几乎所有的系统都绕不开登 ...

  3. 记录一下navicat的快捷键

    1.ctrl+q           打开查询窗口2.ctrl+/            注释sql语句3.ctrl+shift +/  解除注释4.ctrl+r           运行查询窗口的s ...

  4. 团队作业3 需求改进&系统设计(银河超级无敌舰队)

    目录 一.需求&原型改进 1. 需求改进 2. 修改说明书 3.功能分析 4. 调整WBS及计划 二.系统设计 1. 总体设计 2. 数据库设计 3.社团设计 三.Alpha任务分配计划 1. ...

  5. mybatis批量添加数据的三种方式

    原文地址:https://www.cnblogs.com/gxyandwmm/p/9565002.html

  6. 前端测试框架 Jest

    前端测试工具一览 前端测试工具也和前端的框架一样纷繁复杂,其中常见的测试工具,大致可分为测试框架.断言库.测试覆盖率工具等几类.在正式开始本文之前,我们先来大致了解下它们: 测试框架 测试框架的作用是 ...

  7. 记录laravelchina中的微信小程序教程的第四节的安装easy WeChat扩展的报错

    composer require "overtrue/laravel-wechat:~5.0 PHP Fatal error: Allowed memory size of 16106127 ...

  8. Android开发之ListView详解 以及简单的listView优化

    ListView列表视图 最常用的控件之一,使用场景例如:微信,手机QQ等等. android:divider:每个item之间的分割线,可以使用图片或者色值. android:dividerHeig ...

  9. Unable to add window -- token null is not for an application错误的解决方法 android开发

    Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not f ...

  10. android 使用svg 和 webp

    1.参考 https://chris.banes.dev/2016/02/25/appcompat-vector/#enabling-the-flag 2.使用svg 2.1 在中打开svg选项 an ...