前端 ---BOM的介绍
BOM的介绍
JavaScript基础分为三个部分:
- ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。 
- DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。 
- BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。 
什么是BOM
BOM:Browser Object Model,浏览器对象模型。
BOM的结构图:

从上图也可以看出:
- window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象。 
- DOM是BOM的一部分。 
window对象:
- window对象是JavaScript中的顶级对象。 
- 全局变量、自定义函数也是window对象的属性和方法。 
- window对象下的属性和方法调用时,可以省略window。 
下面讲一下 BOM 的常见内置方法和内置对象。
弹出系统对话框
比如说,alert(1)是window.alert(1)的简写,因为它是window的子方法。
系统对话框有三种:
alert(); //不同浏览器中的外观是不一样的
confirm(); //兼容不好
prompt(); //不推荐使用
打开窗口、关闭窗口
1、打开窗口:
window.open(url,target)
参数解释:
- url:要打开的地址。 
- target:新窗口的位置。可以是: - _blank、- _self、- _parent父框架。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> <!--行间的js中的open() window不能省略-->
<button onclick="window.open('https://www.luffycity.com/')">路飞学城</button> <button>打开百度</button>
<button onclick="window.close()">关闭</button>
<button>关闭</button> </body>
<script type="text/javascript"> var oBtn = document.getElementsByTagName('button')[1];
var closeBtn = document.getElementsByTagName('button')[3]; oBtn.onclick = function(){
//open('https://www.baidu.com') //打开空白页面
open('about:blank',"_self")
}
closeBtn.onclick = function(){
if(confirm("是否关闭?")){
close();
}
} </script>
</html>

location对象
window.location可以简写成location。location相当于浏览器地址栏,可以将url解析成独立的片段。
location对象的属性
- href:跳转 
- hash 返回url中#后面的内容,包含# 
- host 主机名,包括端口 
- hostname 主机名 
- pathname url中的路径部分 
- protocol 协议 一般是http、https 
- search 查询字符串 
location.href属性举例:
举例1:点击盒子时,进行跳转。

<body>
<div>smyhvae</div>
<script> var div = document.getElementsByTagName("div")[0]; div.onclick = function () {
location.href = "http://www.baidu.com"; //点击div时,跳转到指定链接
// window.open("http://www.baidu.com","_blank"); //方式二
} </script>
</body>

举例2:5秒后自动跳转到百度。
有时候,当我们访问一个不存在的网页时,会提示5秒后自动跳转到指定页面,此时就可以用到location。举例:

<script>
    setTimeout(function () {
        location.href = "http://www.baidu.com";
    }, 5000);
</script>

location对象的方法
location.reload():重新加载

setTimeout(function(){
         //3秒之后让网页整个刷新
    window.location.reload();
},3000)

navigator对象
window.navigator 的一些属性可以获取客户端的一些信息。
- userAgent:系统,浏览器) 
- platform:浏览器支持的系统,win/mac/linux 
例子:
console.log(navigator.userAgent);
console.log(navigator.platform);
history对象
1、后退:
- history.back() 
- history.go(-1):0是刷新 
2、前进:
- history.forward() 
- history.go(1) 
用的不多。因为浏览器中已经自带了这些功能的按钮:
前端 ---BOM的介绍的更多相关文章
- 前端——BOM与DOM
		目录 前戏 window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 计时相关 DOM H ... 
- Sublime Text前端开发工具介绍
		Sublime Text前端开发工具介绍.. Sublime Text这款前端开发工具中的非常优秀的特性进行介绍 ------------ sublime text 3 3114 注册码 —– BEG ... 
- [原创]H5前端性能测试工具介绍
		[原创H5前端性能测试工具介绍 一 网络抓包工具 网络抓包工具选择原则,可以捕获网络请求,抓取具体请求信息流,同时可以针对网络请包进行修改或拦截: 1.Fiddler(推荐) 2.Charles(推荐 ... 
- 前端路由vue-router介绍
		一.前端路由vue-router介绍 Vue-Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模 ... 
- 4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍
		4- vue django restful framework 打造生鲜超市 -restful api 与前端源码介绍 天涯明月笙 关注 2018.02.20 19:23* 字数 762 阅读 135 ... 
- Vue.js教程   1.前端框架学习介绍
		Vue.js教程 1.前端框架学习介绍 什么是Vue.js 为什么要学习流行框架 什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站, ... 
- 优秀网站看前端 —— 小米Note介绍页面
		刚开始经营博客的时候,我写过不少“扒皮”系列的文章,主要介绍一些知名站点上有趣的交互效果,然后试着实现它们.后来开始把注意力挪到一些新颖的前端技术上,“扒皮”系列便因此封笔多时.今天打算重开“扒皮”的 ... 
- web前端开发教程系列-1 - 前端开发编辑器介绍
		目录: 前言 一. Webstorm 1. 优点 2. 缺点 3. 教程 4. 插件 5. 技巧 二. SublimeText 1. 优点 2. 缺点 3. 教程 4. 插件 5. 技巧 前言 由于很 ... 
- 使用Fiddler提高前端工作效率 (介绍篇)
		1. Fiddler 是什么? Fiddler是用C#编写的一个免费的HTTP/HTTPS网络调试器.英语中Fiddler是小提琴的意思,Fiddler Web Debugger就像小提琴一样,可以让 ... 
随机推荐
- vue2.0 子组件 父组件之间的传值
			常用的子组件给父组件传值/调父组件方法 //子组件let val = "";//可以是任意类型this.$emit('fatherFun', val); //父组件<fath ... 
- Android设置shape后改变颜色
			如下,可能多个btn的设置同一个shape,如果单独改变btn颜色,可以用如下代码 GradientDrawable btnPreDrawable = (GradientDrawable) btnTe ... 
- 关于公众平台接口不再支持HTTP方式调用的公告
			为保证数据传输安全,提高业务安全性,公众平台将不再支持HTTP方式调用.避免影响正常使用中含有HTTP方式调用的服务,请开发者尽快调整,将现有通过HTTP方式调用的切换成HTTPS调用,平台将于201 ... 
- MVC中的分部视图
			背景: 项目的工期马上就要到了,由于后台封装的很好,我们只需要用心熟悉框架,接下来后台的工作就是简单的代码工作了.原本以为最困难的时期已经过去,可没想到前台才是最困难的. B/S的基础十分薄弱,加上B ... 
- [C++]Linux之网络实时检测功能
			声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步,乃至成为朋友- 0.0 由于学习操作系统实验课程 ... 
- 第28月第11天 vim -b
			1. 首先以二进制方式编辑这个文件: vim -b datafile现在用 xxd 把这个文件转换成十六进制: :%!xxd文本看起来像这样: 0000000 ... 
- Python之List列表的增删改查
			序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ... 
- HashSet去除List重复元素
			使用Hashset 去重复 例一,List<String> 去重复 public class main { public static void main(String[] args) { ... 
- zabbix系列~ 监控模式
			一 简介:讲讲监控相关的东西 二 监控模式 Active(主动式)agent —>常用 在Active agent模式下,Zabbix agent启动后,由agent端初始化和Zabbix ... 
- 调整JVM虚拟机的内存大小
			jvm默认只有64M; public static void main(String[] args){ byte b[] = new byte[1024*1024*65];//此时会报内存溢出: } ... 
