BOM

  • ​​一、概述​​
  • ​​1.1DOM​​
  • ​​1.2功能​​
  • ​​1.3代码​​
  • ​​1.4操作Element对象​​
  • ​​1.5事件​​
  • ​​1.5.1概念​​
  • ​​1.5.2如何绑定事件​​
  • ​​1.5.3综合实例​​
  • ​​二、BOM对象​​
  • ​​2.1概念​​
  • ​​2.2组成​​
  • ​​2.2.1window :窗口对象​​
  • ​​(1)实例​​
  • ​​(2)轮播图实例和小bug​​
  • ​​2.2.2Navigator 浏览器对象​​
  • ​​2.2.3screen 显示器屏幕对象​​
  • ​​2.2.4History 历史记录对象​​
  • ​​(1)创建(获取)​​
  • ​​(2)方法​​
  • ​​(3)属性​​
  • ​​(4)实例​​
  • ​​2.2.5Location 地址栏对象​​
  • ​​(1)创建​​
  • ​​(2)方法​​
  • ​​(3)自动跳转实例​​

一、概述

JS由一下几个部分组成,学习BOM要先了解一下事件DOM的基础知识

ECMAScript:脚本语言的基本语法和一些常用对象

BOM:

DOM:

1.事件

1.1DOM

文档对象模型

1.2功能

控制html文档内容

1.3代码

获取页面标签(元素)对象 Element

document.getElementById(“id值”):通过元素的id

1.4操作Element对象

1.修改属性值

明确获取的对象是哪一个

查看API文档,找其中有哪些属型可以设置

2.修改标签体内容:

属型:innerHTML

<body>

<!-- <img id = "one" src="../image/2.jpeg">-->
<h1 title="title">妻不知刘强东</h1>

<script>
// var img1 = document.getElementById(one);
// alert("换图片了哦!");
// img1.src = "../image/3.jpeg";

var title = document.getElementById("title");
alert("换字了");
title.innerHTML = "哈哈哈";

</script>

</body>

1.5事件

1.5.1概念

某些组件被执行了某些操作后,触发某些代码的执行

造句:XXX被XXX,我就XXX

我方水晶被摧毁后,我就责备对象

1.5.2如何绑定事件

直接在html标签上

<img id = "img1" src="../img/1.jpg" onclick="fun();">
<img id = "img2" src="../img/2.jpg">

<script>
function fun(){
alert('w c');
alert('?');
}
function fun2(){
alert('what happen?');
alert('?');
}

var img1 = document.getElementById("img2");
img1.onclick = fun2;
</script>

1.5.3综合实例

实现图片点一次切换一次

<body>

<img id = 1 src="../img/1.jpg">

<script>
//1.获取图片对象
// flag = flase;这个地方错五,没有提示看不出来怎么办?浏览器打开之后按f12进入控制台会有提示
flag = true;
var str = document.getElementById(1);
str.onclick = function (){
if (flag){
str.src = "../img/2.jpg";
flag = false;
}else{
str.src = "../img/1.jpg";
flag = true;
}
}
</script>

</body>

二、BOM对象

2.1概念

Browser object Model 浏览器对象模型
将浏览器的各个组成部分封装成对象。

2.2组成

2.2.1window :窗口对象

(1)实例

<body>

<input id = 'open' type="button" value="打开新窗口">
<input id = 'close' type="button" value="关闭新窗口">
<script>
/*
windows对象
1.创建
2.方法
1.与弹出有关的方法
alert() 显示一段消息和一个确认
confirm() 显示带有确认和取消的对话框
点击确定返回true
点击取消返回false
prompt() 显示可以提示用户输入的对话框
返回值:获取用户输入值

2.与打开关闭有关的方法
open() 打开窗口
close() 关闭窗口,谁调用谁被关

3.与定时器有关的方式
setTimeout() 在指定的毫秒数后调用函数或计算表达式
参数 :
1.js代码或者方法对象
2.毫秒值
返回值:
唯一标识,用于取消定时器

cleanTimeout() 取消由setTimeout()方法设置的timeout

setInterval() 按照指定的周期来调用
clearInterval() 取消setInterval设置的timeout



3.属型
获取其他的BOM对象和DOM对象


4.特点
windows对象不需要创建可以直接使用
windows引用可以省略
例如我们前面常用的alert,其实就是windows对象中的方法
*/

var flag = confirm("下面会出现两个按钮,确认和取消");
if (flag){
alert("你点了确定");
}else {
alert("你点了取消");
}

var str = prompt("请输出用户名");
alert(str);

获得标签对象
var ele = document.getElementById("open");
var newWindow;
//绑定事件
ele.onclick = function (){
newWindow = open("http://www.baidu.com");
}

var ele1 = document.getElementById("close");

ele1.onclick = function (){
newWindow.close();
}

var timeout = setTimeout(fun,2000);
clearTimeout(timeout);
function fun(){
alert("boom~~~");
}

var interval = setInterval(fun,2000);
clearInterval(interval);
function fun(){
alert("boom~~~");
}
window.document


</script>

</body>

(2)轮播图实例和小bug

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>


</head>
<body>
<img id = "img1" src="../img/g1.jpeg" width="100%">

<script>
/*轮播图思路
1.写更改图片的方法
2.调用更改图片的方法
3.每3秒
*/

var num = 1;
function fun(){
num ++;
if (num > 3){
num = 1;
}
var img = document.getElementById("img1");
//小bug
// Uncaught TypeError: Cannot set property 'src' of null
//原因是document.getElementById("img1")没有获取到元素对象
img.src = "../img/g"+num+".jpeg";
}

setInterval(fun,2000);

</script>

</body>
</html>

2.2.2Navigator 浏览器对象

不常用

2.2.3screen 显示器屏幕对象

不常用

2.2.4History 历史记录对象

(1)创建(获取)

window.history

history

(2)方法

back() 加载history列表中的前一个URL。
forward() 加载history 列表中的下一个URL。
go() 加载hisItory 列表中的某个具体页面。

参数:

正数:前进几个历史记录

负数:后退几个历史记录

相当于集成了back和forwork方法


(3)属性

length 返回当前窗口历史列表中的URL数量。

(4)实例

<body>
<!--<input id = "forword" type="button" value="前进">-->
<input id = "f" type="button" value="前进">


<a href="轮播图案列.html">后退实例</a>
<script>
// var f = document.getElementById("forword");
// f.onclick = function (){
// history.forward();
// }

var f1 = document.getElementById("f");
f1.onclick = function (){
history.go(1);
}
// var b = document.getElementById("back");
// f.onclick = function (){
// history.back();
// }
</script>
</body>

2.2.5Location 地址栏对象

(1)创建

  • window.location
  • location

(2)方法

reload() 重新加载当前文档。刷新

(3)自动跳转实例

<style>
/*
div这个标签是用来划分区域的,它是个块级元素block
span标签是个行内元素(行内元素就是在浏览器的一行上)比如span里面的元素不会换到下一行
*/
p{
text-align: center;
}
span{
color: #ff0000;
}

</style>
<body>
<p>
<span id = "time">5</span>秒之后,自动跳转到首页
</p>


<script>
/*
分析:
1.显示页面效果<p>
2.倒计时读秒效果实现
2.1定义一个方法,获取span标签,修改span标签体内容,时间--
2.2定义一个定时器,1秒执行一次该方法
3.在方法中判断时间如果<= 0,则跳转到首页
*/
var second = 5;
function fun(){
second --;
if (second <= 0){
location.href = "http://www.qq.com"
}
var time = document.getElementById("time");
time.innerHTML = second + "";
}
setInterval(fun,1000);

</script>

</body>