JS15- BOM操作

BOM操作

操作浏览器,通过浏览器厂商提供的指定的方法

1,三大弹窗

    window.alert()     提示窗
    window.confirm()   确认框
        点击确定,返回值true,点击取消,返回值是false
    window.prompt()    输入框
        执行结果是输入的数据内容
        数据类型都是字符串类型
        如果输入的是数据,要进行数据类型转化

2,获取浏览器滚动条上卷和左右移动的高度或者宽度

    var height = document.documentElement.scrollTop || document.body.scrollTop;
    var width = document.documentElement.scrollLeft || document.body.scrollLeft;

    可以获取也可以设定,设定时,只要数值,不要px单位

    设定时,为了兼容,最好也写两个设定

一.BOM 操作

BOM:浏览器对象模型
可以操作浏览器的方法
所谓的操作浏览器的方法,是各个浏览器厂商提供给我们的
浏览器厂商允许我们操作浏览器,我们才可以操作,如果不允许,就不能操作
各个浏览器厂商,都有自己的特点,因此,BOM操作,有兼容性需要考虑

二.浏览器三大弹窗操作

1,提示框 / 警告框
window.alert(‘弹出内容\n警告内容’);

转义符
类似于 HTML中的 字符实体 是为了解决 输入内容和JavaScript代码的冲突

例如,要在弹框中,实现换行

\n 换行
’ 单引号
" 双引号

\r 回车
\t 横向跳格 (Ctrl-I)
\ 反斜杠
\f 纵向的间隔

注意:各个浏览器对转移符的支持效果不同,执行效果也不一样
我们只要记住前三个就可以了

2,输入框
作用: window.prompt(‘提示内容’);
弹出一个输入框,可以输入数据,()中定义的内容,作为输入数据的提示内容
输入框执行结果,可以使用变量来存储
存储的内容,是数据的数据内容

问题: 输入的数据,存储的方式是,字符串类型
如果是输入数值,需要计算,必须把数据类型转化为数值

var userName = window.prompt(‘请输入账号’);
var userPwd = window.prompt(‘请输入密码’);

console.log(userName,userPwd);

将 纯数字的 字符串 转化为数值类型方法

方法1 : parseInt() 获取整数部分
var res1 = parseInt(window.prompt(‘请输入密码’));
console.log(res1);

方法2 : 执行非 加法的 不影响数值的 运算
var res2 = window.prompt(‘请输入密码’) - 0 ;
var res2 = window.prompt(‘请输入密码’) * 1 ;
var res2 = window.prompt(‘请输入密码’) / 1 ;
console.log(res2);

方法3 : 在数值前,添加 + 正号 / - 负号
获取 整数 的部分
但是要注意,正数和负数的问题

  • 正号 : 正数获取的正数结果 负数获取的是负数结果
  • 负号 : 正数获取的负数结果 负数获取的是正数结果
    var res2 = -window.prompt(‘请输入密码’);
    console.log(res2);

3,确认框
作用: window.confirm(‘提示内容’);
点击确定按钮,window.confirm()执行结果,返回值是 true
点击取消按钮,window.confirm()执行结果,返回值是 false
可以根据,返回值,执行不同的操作
var res = window.confirm(‘请问您是否确定删除这个邮件’);
console.log(res);

三.获取浏览器滚动条高度

获取 浏览器滚动条高度

获取浏览器滚动条,分为宽度和高度两个属性

获取浏览器滚动条的高度,宽度

1.获取高度的兼容性
有没有 文档类型声明
有 : document.documentElement.scrollTop;
没有 : document.body.scrollTop;
如果获取方式错误,程序不会报错,只是获取的结果是0

var height1 = document.documentElement.scrollTop;
var height2 = document.body.scrollTop;
console.log(height1 , height2);

实际当中要确保,始终可以获取到正确的数值,不管有没有文档类型声明
做 兼容处理
var 变量 = 方式1 || 方式2 ;
当方式1有结果时,数值会转化为 true , 方式2,就不会执行
变量中存储的是方式1,获取的结果
当方式1结果是0时,数值会转化为 false , 方式2会执行
变量中,先存储方式1的结果0,再存储方式2的结果,最终为方位2的结果

最终的效果,就是确保变量中,始终有数值存储,

console.log(document.documentElement.scrollTop);
console.log(document.body.scrollTop);

浏览器上卷(竖着)的高度
var height = document.documentElement.scrollTop || document.body.scrollTop

浏览器移动(横着)的宽度
var width = document.documentElement.scrollLeft || document.body.scrollLeft;

console.log(height , width);

2.利用属性来设定

设定滚动条,移动的宽度和高度
直接设定数值就可以,不要加PX
document.documentElement.scrollTop = 500;
document.documentElement.scrollLeft = 500;

四.浏览器滚动条demo

在这里插入图片描述
在这里插入图片描述

详解:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五.名词解释

服务器
    所谓服务器,就是装载了服务器软件的电脑
    作用:可以将电脑作为一个终端,电脑中的内容可以在网上被访问
            也就是你写的网页,可以通过服务器软件,被其他电脑通过地址访问到
    服务器软件 : Apache 阿帕奇服务器

IP地址
    每一台电脑,在互联网上,都有一个地址,这个地址是唯一的,通过这个地址,可以访问这台电脑
    前提是这台电脑,已经在服务器上配置好了,允许访问
    如果你要搭建一个服务器,就要设定好服务器的IP地址,其他电脑就可以访问了

域名
    IP地址是一长串数值,不方便记忆,通过转化,将IP地址转化为文字或者字母,方便记忆

    2408:80f0:410c:1c:0:ff:b00e:347f   百度的IP地址
    www.baidu.com                      百度的域名

端口
    端口是软件程序与计算机沟通的通道
    每一个软件都必须设定一个独立的端口
    如果端口重复冲突,软件会无法正常执行
    一般的软件都设定好了端口,不用我们去专门设定
    搭建服务器时,要设定服务器的端口,如果设定有问题,服务器无法执行

六.BOM操作地址栏信息

<button id="btn">点击刷新</button>

在这里插入图片描述
获取浏览器地址栏信息
window.location
console.log(window.location);

1, window.location.reload() 方法
页面重新加载/刷新方法

window.location.reload(); // 不能直接写,否则会一直刷新
一般是于判断和事件绑定执行,不能单独执行
点击刷新,5秒钟之后刷新
移动端,浏览器刷新不方便点击,可以设定按钮点击

btn.onclick = function(){
window.location.reload();
}

2, window.location.href
获取地址栏的信息内容
中文 显示为 %两位十六进制数值
可以将 %XX 转化为中文

直接获取地址栏信息
console.log(window.location.href);
将地址栏信息中文正常显示 decodeURIComponent()
console.log(decodeURIComponent(window.location.href)) ;

3, window.location.host
获取地址栏信息中,主机地址信息
当页面再服务器运行时,可以获取服务器主机地址信息,一般是IP地址或者域名

4, window.location.port
获取地址栏信息中,端口的数值
所谓的端口,是计算机程序,与计算机本身,沟通的通道
每一个软件,运行时,都要有独立的与计算机沟通的通道
这个通道,我们称为 端口
每个软件都有一个独立的端口
此时获取到的往往是 服务器 运行的端口

5, window.location.search
获取地址栏信息中,传参的数据
在浏览器地址栏中,可以实现数据的传递,也就是传递参数
格式是 地址?传参的数据
获取的是 ?以及之后的内容

七.window.location.href的demo

页面跳转和5s以后页面跳转
在这里插入图片描述
在这里插入图片描述

八.BOM操作值获取浏览器相关信息

BOM操作之获取浏览器相关信息
console.log(window.navigator);

获取浏览器版本号,内核,型号,等相关信息
console.log(window.navigator.userAgent);

浏览器软件名称
任何一个浏览器,获取结果都是 Netscape 网景公司
Netscape 是一个标准浏览器生成公司
现在为了致敬网景公司,appName,统一都是 Netscape
console.log(window.navigator.appName);

浏览器软件版本信息
console.log(window.navigator.appVersion);

本地电脑,操作系统信息
console.log(window.navigator.platform);

九.BOM操作之跳转

BOM 操作之浏览器的跳转 window.history
在一个浏览器窗口中,打开页面,会有前进,后退,操作
可以通过JavaScript程序,实现 浏览器按钮的 前进 后退 功能
一般多用于页面注册,填写信息,电商购物平台
上一步,下一步等类似操作使用

console.log( window.history )

window.history.length 当前窗口一共访问过几个页面
window.history.back() 功能就是 后退 功能
返回到上一个访问的页面
window.history.forward() 功能就是 前进 功能
前进到下一个访问的页面
window.history.go(数值) 跳转到指定位置的页面
通过设定跳转几个页面来实现
+数值 就是前进
-数值 就是后退
设定的数值是跳转的次数

问题1:
重复访问,length会不会增加?
只要通过超链接访问,或者window.location.href,跳转访问的页面
即时是重复页面,也会增加 length 长度

问题2:
length,只记录本窗口访问的次数,新窗口访问的不算
target="_blank" 不算length长度

问题3:
如果浏览页面过多,如何判断访问的页面
通过超链接来控制用户访问的页面和跳转的聂荣
例如:demo中
页面1,只能去页面2
页面2,只能去页面3
页面3,只能去页面4
页面4,只能去页面5
页面5,只能去页面6
页面6 就到头了
这样的话,每次跳转的内容就是固定的内容

十.BOM操作之浏览器常见事

在这里插入图片描述
在这里插入图片描述

BOM操作之浏览器常见事件

什么是事件
所谓的事件,就类似于一个约定
当触发条件时,就会执行,指定的程序

例如 click 点击事件

给标签绑定点击事件 当标签触发 点击条件时 执行绑定的程序

click 点击事件 — 事件类型
onclick 绑定点击事件 , 给标签绑定一个事件类型
function(){} 事件处理函数 , 触发事件时,执行的程序
也可以是一个已经定义好的函数

给div标签,绑定了一个事件类型
事件类型是点击事件类型
当div标签被点击时,触发执行程序
d1.onclick = function(){
console.log(‘我是div,有人点我’);
}

需要绑定已经定义的函数
必须绑定函数名称,或者变量名称
绝对绝对绝对,不能有()
这里绑定的是,函数名称,变量名称中存储的, 函数的地址

如果有 () , d2.onclick = fun() ×
将 fun() 的执行结果, 绑定给事件

function fun(){
console.log(‘我是定义好的函数程序,绑定给div点击事件’)
}

var fun2 = function(){
console.log(123)
}

给点击事件,绑定一个fun函数名称中,存储的函数地址
触发事件时,调用地址,找到对应的函数,执行函数程序
d2.onclick = fun ;

d3.onclick = fun2 ;

load 事件 window.onload = function(){}
页面加载事件
当页面程序都加载结束之后,执行的程序
如果JavaScript程序定义在其他程序(html,css)之前,
绑定 load 事件 , 让程序在 页面加载完毕之后,再执行
不推荐使用这种方法
一般是将script标签,写在程序的最下方

外部导入js文件,要么放在head中
要么也放在body的最下方

open 事件 window.open(‘url地址’)
定义打开的页面 — 新窗口打开页面
window.location.href = ‘url地址’ 当前窗口打开页面

loc.onclick = function(){
window.location.href = ‘https:/www.baidu.com’; → 当前页面中打开窗口
}

ope.onclick = function(){
window.open(‘https:/www.baidu.com’) ; → 在新页面中打开窗口
}

scroll 事件 window.onscroll = function(){}
滚动条事件
当浏览器 滚动条 位置发生改变时,触发事件

window.onscroll = function(){
console.log(‘我滚了’);
}

resize 事件 window.onresize = function(){}
当页面大小发生改变时,触发事件

window.onresize = function(){
console.log(‘我改了’);
}

close 事件 window.close()
关闭当前页面事件

c.onclick = function(){
window.close();
}

总结
常用的:
click scroll
其他不是很常用
有的有on,有的没有on,是JavaScript的固定语法形式,记住就行了

发布了103 篇原创文章 · 获赞 4 · 访问量 2020

猜你喜欢

转载自blog.csdn.net/DcTbnk/article/details/105131133