从零开始学习前端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 ...
随机推荐
- 关于《Web接口开发与自动化测试--基于Python语言》
关于封面logo 首先,你会被书封上面logo吸引,这么炫酷?双蛇杖?嗯,这是Requests的新logo. 旧的logo是一只乌龟. 新logo是双蛇杖: 看到新logo我首先想到的是 火爆全网页游 ...
- Less is exponentially more
Less is exponentially more (原文出处:rob pike 博客,https://commandcenter.blogspot.jp/2012/06/less-is-expo ...
- Elasticsearch5.4常见问题总结
最近项目中用到了Elasticsearch5.4(ES)是比较新的一个版本,使用的过程中出现了很多的问题,很是头疼,但是问题最终还是解决掉了. 问题一:ESClient获取慢,并且不能获取Client ...
- ASP.NET如何通过后台数据库提供的链接播放视频(不使用外置插件)
1.后台视频数据库: 2.aspx中的关键代码: <asp:DataList ID="DataList2" runat="server" DataKeyF ...
- 初识CSS3
1.CSS规则由两部分构成,即选择器和声明器 声明必须放在{}中并且声明可以是一条或者多条 每条声明由一个属性和值构成,属性和值用冒号分开,每条语句用英文冒号分开 注意: css的最后一条声明 ...
- jquery.cookie的path坑
在使用jquery.cookie设置cookie的时候,通常都是直接设置,没有针对path,domain和expires等进行具体的设置,这会导致,同一个cookie的key对应多个value. 1. ...
- \Process(sqlservr)\% Processor Time 计数器飙高
计数器" \Process(sqlservr)\% Processor Time",是经常监测,看看SQL Server如何消耗CPU资源.sqlserver是如何利用现有的资源; ...
- Android JNI so库的开发
build.gradle的配置 apply plugin: 'com.android.application'android { compileSdkVersion 26 buildToolsVers ...
- 常用的 css reset,基本的base.css
@charset "utf-8"; html { overflow-x: hidden; overflow-y: auto; } /*隐藏横向滚动,垂直滚动根据内容自 ...
- Maven构建项目比较慢的解决办法
[前言] Intellij IDEA下Maven构建项目时,构建项目速度比较慢.需要等好久才能构建好一个项目,有时候一下午也还在提示进度. [问题描述] 使用Maven构建项目时: 设置好各种参数,然 ...