从零开始学习前端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 ...
随机推荐
- 7、树莓派编程;gpio编程;led闪烁
本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ12226981 1.树莓派接口对照,一定要找到对应的引脚,不要接错了.我画上箭头. 2.安装 下载地址,https://git.drogon.n ...
- Sublime Text 2 Plugin Installation
For Package Control installation, see the Installation Guide. To install Emmet(ex Zen Coding), do ...
- 修改placeholder的样式
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666; } input:-moz-pl ...
- UTC 通用格式时间 转换为 时间戳,并格式化为2017-01-01 12:00:00
在使用阿里云oss获取文件列表是,发现时间格式是这样的 2016-09-20T13:45:04.000Z (尼玛,是什么鬼), 经过度娘的解答,发现这就是传说中的 UTC通用格式时间 问题来了,怎么转 ...
- 前端之 CSS🤖
css (层叠样式表) : 对html标签的渲染和布局 查找 (选择器) 操作标签 (属性操作) 导入用 link 标签,后面的href就用你的文件路径就好 写css文件,要单独写到一个文件里面去 推 ...
- .NET Core+MySql+Nginx 容器化部署
.NET Core容器化@Docker .NET Core容器化之多容器应用部署@Docker-Compose .NET Core+MySql+Nginx 容器化部署 GitHub-Demo:Dock ...
- Hibernate学习笔记(3)---hibernate关联关系映射
一对一关联 假设有两个持久化类(实体类)User与Address,它们之间存在一对一的关系 1,通过主键关联(个人偏向另外一种) User.hbm.xml文件配置 <id name=" ...
- Micropython实战之TPYBoardv102 DIY金属检测仪
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 1.实验目的 1.学习在PC机系统中扩展简单I/O接口的方法. 2.进一 ...
- 正确显示textarea中输入的回车和空格
在textarea中输入的文本.如果含有回车或空格.在界面上显示的时候则不那么正常.回车消失了,空格变短了. 如何解决这个问题呢.有2种方法. 1.使用<pre>标签 w3c对pre元素是 ...
- H2Engine游戏服务器设计之属性管理器
游戏服务器设计之属性管理器 游戏中角色拥有的属性值很多,运营多年的游戏,往往会有很多个成长线,每个属性都有可能被N个成长线模块增减数值.举例当角色戴上武器时候hp+100点,卸下武器时HP-100点, ...