从零开始学习前端JAVASCRIPT — 5、JavaScript基础BOM
1:BOM(Browser Object Model)概念
window对象是BOM中所有对象的核心。
2:window属性(较少用)
self:self代表自己,相当于window。
window.self; //指向自身窗口
parent:返回父窗口。
window.parent //指向父元素的窗口
top:返回顶层窗口,和parent作用一样。
window.top
console.log(window.parent == window.top);
opener:窗口开启者。
console.log(window.opener);
3:window方法
1.window.open(url, name, feature, replace);
window.open('opener.html', 'open');//打开opener.html的页面,窗口的标题open
url:一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
name:一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。
这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。
feature:自行扩展。replace:自行扩展。
谷歌默认会把系统自动打开的新网页阻止掉,但不阻止通过事件打开新的网页。
2.close:关闭浏览器。(window.close()//关闭浏览器窗口)
但都支持通过别的网页打开的新的网页关闭。
3.alert(显示的文本):弹出窗。(window.alert()//浏览器窗口弹框)
4.confirm(对话框提示的文字):该方法有返回值,点击确定返回true,点击取消返回false。
console.log(window.confirm('今天下雪了吗?')); //点击确认输出true;点击取消输出false
5.prompt(提示信息):输入框。点击确定返回字符串,点击取消返回null。
console.log(window.prompt('请问1+1等于几?'));
//弹出窗口有书写区域,返回值为输入的信息,若不填写为null
4:history对象
该对象包含浏览器窗口访问过的url。
1.属性
length 返回浏览器历史记录的数量
2.方法(使用以下方法返回网页history的记录不增不减)
back() 后退,加载前一个url。
forward() 前进。
go(number) 如果参数是正数,那么就是前进相应的数目,如果是负数那么反之,如果是0那么就是刷新。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>file1</title>
</head>
<body>
<a href="file2.html">file2</a>
<a href="file3.html">file3</a>
<a href="file4.html">file4</a>
<button id="back">回退到上一个页面</button>
<button id="forward">前进到下一个页面</button>
<button id="go">进两步</button>
<script>
console.log(history.length);
var oBack = document.getElementById('back')
oBack.onclick = function () {
history.back()
} var oForward = document.getElementById('forward')
oForward.onclick = function () {
history.forward()
} var oGO = document.getElementById('go')
oGO.onclick = function () {
history.go()
}
</script>
</body>
</html>
页面一的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>file2</title>
</head>
<body>
<a href="file1.html">file1</a>
<a href="file3.html">file3</a>
<a href="file4.html">file4</a>
<button id="go">后退1步</button>
<button id="back">回退到上一个页面</button>
<button id="forward">前进到下一个页面</button>
<script>
console.log(history.length);
var oBack = document.getElementById('back')
oBack.onclick = function () {
history.back()
}
var oForward = document.getElementById('forward')
oForward.onclick = function () {
history.forward()
}
var oGO = document.getElementById('go')
oGO.onclick = function () {
history.go(-1)
}
</script>
</body>
</html>
页面二的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>file3</title>
</head>
<body>
<a href="file1.html">file1</a>
<a href="file2.html">file2</a>
<a href="file4.html">file4</a>
<button id="go">刷新</button>
<button id="back">回退到上一个页面</button>
<button id="forward">前进到下一个页面</button>
<script>
console.log(history.length);
var oBack = document.getElementById('back')
oBack.onclick = function () {
history.back()
}
var oForward = document.getElementById('forward')
oForward.onclick = function () {
history.forward()
}
var oGO = document.getElementById('go')
oGO.onclick = function () {
history.go(0)
}
</script>
</body>
</html>
页面三的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>file4</title>
</head>
<body>
<a href="file1.html">file1</a>
<a href="file2.html">file2</a>
<a href="file3.html">file3</a>
<button id="go">后退1步</button>
<button id="back">回退到上一个页面</button>
<button id="forward">前进到下一个页面</button>
<script>
console.log(history.length);
var oBack = document.getElementById('back')
oBack.onclick = function () {
history.back()
}
var oForward = document.getElementById('forward')
oForward.onclick = function () {
history.forward()
}
var oGO = document.getElementById('go')
oGO.onclick = function () {
history.go(-1)
}
</script>
</body>
</html>
页面4的代码
5:location对象
包含有当前url的相关信息,而history对象不能具体反应url的相关信息。
完整的URL组成部分:协议(schema http:// https://)域名(domain) 端口号(port 80 443)/路径(path)查询字符串(? query)锚点连接(# hash)
属性:
href:设置或返回完整的url。可以为相对路径,也可以为绝对路径。
search:返回url?后面的查询部分。hash :是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。
方法:
assign(url):加载新的文档。
reload(boolean):重新加载文档,当参数是true,任何时候都会重新加载,false的时候,只有在文档改变的时候才会加载,否则直接读取内存当中的。
replace(url):用新的文档代替当前的文档。但不会在 History 对象中生成一个新的记录。当使用该方法时,新的 URL 将覆盖 History 对象中的当前记录。
6:navigator对象
userAgent:用户代理信息,通过该属性可获取浏览器及操作系统信息。可通过此对象查看浏览器的信息,项目的不兼容此版本浏览器可给出用户的相关建议。
console.log(navigator.userAgent);
7:window事件
- onresize:窗口缩放事件。
window.onresize = function () {
console.log(2)
}
- onload:加载事件网页加载完毕后执行。// 获取浏览器视窗宽度/高度
window.onload = function () {
console.log(document.documentElement.clientWidth)
console.log(document.documentElement.clientHeight)
}
- onscroll:滚动事件。// 获取浏览器滚动条隐藏的宽度/高度
chrome(body)、火狐、IE(documentElement)
通过或者的方式兼容各版本的浏览器:
window.onscroll = function () {
var iScrollT = document.documentElement.scrollTop || document.body.scrollTop;
var iScrollL = document.documentElement.scrollLeft || document.body.scrollLeft;
console.log(iScrollL)
}
从零开始学习前端JAVASCRIPT — 5、JavaScript基础BOM的更多相关文章
- 李洪强和你一起学习前端之(3)Css基础和选择器
大家好! 经过了前面的学习,是不是对前端的学习有了初步的了解.虽然我之前有iOS开发的经验,现在接触一门新的语言,对我来说 有一定的优势,但是一门技术对于谁来说都是公平的,我承认,我在接触新知识的时候 ...
- 从零开始学习前端JAVASCRIPT — 1、JavaScript基础
1:定义:javascript是一种弱类型.动态类型.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类 ...
- 从零开始学习前端JAVASCRIPT — 2、JavaScript基础ES5
1:ES5简介 ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于JavaScript的规范)标准的修正. 与HTML5规范进程本质类似,ES5通过对现有JavaScript ...
- 从零开始学习前端JAVASCRIPT — 10、JavaScript基础ES6(ECMAScript6.0)
ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发 ...
- 从零开始学习前端JAVASCRIPT — 7、JavaScript基础EVENT
1:事件驱动 1)事件:所谓事件就是js侦测到的用户的操作或是页面的一些行为(怎么发生的) 2)事件源对象:引发事件的元素.(发生在谁的身上) 3)事件处理程序:对事件处理的程序或是函数 (发生了什么 ...
- 从零开始学习前端JAVASCRIPT — 9、JavaScript基础RegExp(正则表达式)
1:正则的概念 正则表达式(regular expression)是一个描述字符规则的对象.可以用来检查一个字符串是否含有某个子字符串,将匹配的子字符串做替换或者从某个字符串中取出符合某个条件的子串等 ...
- 从零开始学习前端JAVASCRIPT — 8、JavaScript基础COOKIE
1:通信协议 定义:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定.协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到 ...
- 从零开始学习前端JAVASCRIPT — 4、JavaScript基础Math和Date对象的介绍
Math对象的介绍 1:Math对象 Math 对象用于执行数学任务.并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math().您无需创建它,通过把 Math 作为对象使用就 ...
- 从零开始学习前端JAVASCRIPT — 3、JavaScript基础string字符串介绍
1:字符串 JS中的任何数据类型都可以当作对象来看.所以string既是基本数据类型,又是对象. 2:声明字符串 基本数据类型:var sStr = '字符串'; 对象的方法:var oStr = n ...
随机推荐
- tideways+xhgui搭建php 7的性能测试环境
前言 我之前使用的是xhprof+xhgui分析线上环境的性能,然而PHP版本升级到PHP 7之后,xhprof已经不可用,于是改用tideways+xhgui,这实际上也是PHP7下开源方案的唯一选 ...
- 高级开发层面,针对Hibernate方面面试题的总结(对其它ORM也适用)
虽然目前mytabis用得比较多,但Hibernate相对比较容易上手,而且也有不少公司在用,所以本文就用这个举例,事实上,本文给出的面试建议也适用于各种ORM.本文摘自java web轻量级开发面试 ...
- Navicat for MySQL定时备份数据库及数据恢复
在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电 ...
- python csv模块的reader是一个迭代器,无法多次迭代
在一个项目中,我需要多次遍历一个文本,该文本我是用csv.reader读取的.但后来发现,本文只对第一次循环有用,而之后的循环均为空白.经过排错后,我确定问题就出现在csv.reader()这一步.之 ...
- 几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...
- thinkphp 中的钩子应用
1 创建钩子行为: 我们自己定义的标签位可以直接放在Think\Behaviors中,也可以放在应用目录中,比如说Home模块下,新建一个Behaviors的文件夹,在文件夹内新建 标签名+Behav ...
- python实现二分查找算法
二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...
- js 闭包的用法详解
一.闭包 实现可重用的局部变量,且保护其不受污染的机制. 外层函数包裹受保护的变量和内层函数. 内层函数专门负责操作外层函数的局部变量. 将内层函数返回到外层函数外部,反复调用. 二.作用域 子函数会 ...
- vue2.0 关于Vue实例的生命周期
什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过 ...
- Scala 简介
Scala 特性 面向对象特性 Scala是一种纯面向对象的语言,每个值都是对象.对象的数据类型以及行为由类和特质描述. 类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制.这 ...