摘要:知识总结在中使用,浏览器对象模型是其核心对象的所有对象都存在于一个运行环境之中,这个运行环境本身也是对象,称为顶层对象。如果中不包含端口号,则这个属性返回空字符串返回页面使用的协议。
BOM知识总结
在web中使用JavaScript,BOM(浏览器对象模型)是其核心
window对象JavaScript的所有对象都存在于一个运行环境之中,这个运行环境本身也是对象,称为“顶层对象”。
这就是说,JavaScript的所有对象,都是“顶层对象”的下属。不同的运行环境有不同的“顶层对象”,在浏览器环境中,这个顶层对象就是window对象。
window对象同时扮演ECMAScript中Global对象的角色,因此所有在全局作用域中声明的变量、函数都会变成window对象的属性和方法。
窗口的大小和位置 位置全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以。
IE、Safari、Opera、Chrome都提供了 screenLeft和screenTop属性,分别用于表示窗口相对于屏幕左边和上边的位置。Firefox则在screenX和screenY属性中提供相同的窗口位置信息(Safari和Chrome也同样支持)。
大小window.innerHeight和window.innerWidth
返回网页在当前窗口中可见部分的高度和宽度,即“视口”(viewport),单位为像素。当用户放大网页的时候(比如将网页从100%的大小放大为200%),这两个属性会变小。因为这时网页的像素大小不变,只是每个像素占据的屏幕空间变大了,因为可见部分(视口)就变小了。注意,这两个属性值包括滚动条的高度和宽度。
window.outerHeight和window.outerWidth
返回浏览器窗口的高度和宽度,包括浏览器菜单和边框,单位为像素。
JS是单线程语言,但它允许通过设置超时值和间歇时间来调度代码在特定的时刻执行。
setIntervalwindow对象的setInterval方法用来实现一个函数在指定毫秒数的间隔里重复调用。setInterval返回一个值,这个值可以传递给clearInterval用于取消这个函数的执行。
var num = 0, max = 10, intervalId; function incrementNumber() { num ++; if (num == max){ clearInterval(intervalId); alert("ok"); } } intervalId = setInterval(incrementNumber,500);setTimeout
window对象的setTimeout方法用来实现一个函数在指定的毫秒数之后运行。setTimeout返回一个值,这个值可以传递给clearTimeout用于取消这个函数的执行。
var num = 0, max = 10; function incrementNumber() { num ++; if (num < max){ setTimeout(incrementNumber,500); } else { alert("ok"); } } setTimeout(incrementNumber,500);
frame如果以0毫秒的超时时间来调用setTimeout ( ) ,那么指定的函数不会立即执行。相反,会把它放到队列中,等到前面处于等待状态的事件处理程序全部执行完毕后,再“立即”调用它。
window.frames属性返回一个类似数组的对象,成员为页面内所有框架窗口,包括frame元素和iframe元素。window.frames[0]表示页面中第一个框架窗口,window.frames["someName"]则是根据框架窗口的name属性的值(不是id属性),返回该窗口。
传统的frame已被废弃,由所创建的嵌套浏览上下文是用它自己的Window对象所表示的。
var iframe = window.getElementsByTagName("iframe")[0]; var iframe_title = iframe.contentWindow.title;导航和弹出窗口
window.open ( ) 方法既可以导航到一个特定的URL,也可以打开一个新的浏览器窗口。
这个方法接受四个参数:要加载的URL、窗口目标、一个特性字符串以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值。
例如:
var popup = window.open( "somepage.html", "DefinitionsWindows", "height=200,width=200,location=no,resizable=yes,scrollbars=yes" );
window.close方法用于关闭当前窗口,一般用来关闭window.open方法新建的窗口。
window.closed属性用于检查当前窗口是否被关闭了。
新创建的window对象有一个opener属性,其中保存着打开它的原始窗口对象
系统对话框浏览器通过alert ( ) 、confirm ( ) 、prompt ( ) 方法可以调用系统对话框向用户显示消息。系统对话框与在浏览器中显示的网页没有关系,也不包含HTML。它们的外观由操作系统及浏览器设置决定,而不是由css决定。
这几个方法打开的对话框都是同步和模态的。显示这些对话框的时候代码会停止执行,而关掉这些对话框后代码又会恢复执行。
alert ( ) 这个方法弹出的对话框,只有一个“确定”按钮,往往用来通知用户某些信息。
confirm ( ) 会显示确认与取消按钮,两个按钮可以让用户决定是否执行给定的操作
prompt ( ) 用于提示用户输入一些文本
URL的解码/编码方法decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
Location对象Location对象是一个很特别的对象,它既是window对象的属性,也是document对象的属性;换句话说window.location和document.location引用的是用一个对象。
window.location === document.location
location对象的用处不只是表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段。
属性名 | 例子 | 说明 |
---|---|---|
hash | "#contents" | 返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回空字符串 |
host | "www.jikexueyuan.com:80" | 返回服务器名称和端口号 |
hostname | "www.jikexueyuan.com" | 返回不带端口号的服务器名称 |
href | "http:// www.jikexueyuan.com" | 返回当前加载页面的完整URL。而Location对象的toString()方法也返回这个值 |
pathname | "/my/" | 返回URL中的目录和文件名 |
port | "8080" | 返回URL中制定的端口号。如果URL中不包含端口号,则这个属性返回空字符串 |
protocol | "http:" | 返回页面使用的协议。通常是http:或https: |
search | "?q=javascript" | 返回URL的查询字符串。这个字符串以问好开头 |
尽管location.search返回从问好到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。可以才用decodeURIComponent来解析
History对象如果调用reload ( ) 时不传入任何参数,页面就会以最有效的方式重新加载。
浏览器窗口有一个history对象,用来保存浏览历史,从窗口被打开的那一刻算起。history是window对象的属性,因此每个浏览器窗口、每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联。
history对象提供了一系列方法,允许在浏览历史之间移动。
back ( ) :移动到上一个访问页面,等同于浏览器的后退键。
forward():移动到下一个访问页面,等同于浏览器的前进键。
go ( ) :接受一个整数作为参数,移动到该整数指定的页面,比如go(1)相当于forward(),go(-1)相当于back()。
history对象有一个length属性,保存着历史记录的数量。
HTML5为history提供了两个新方法,history.pushState ( ) 和history.replaceState ( ) ,用来在浏览器历史中添加和修改记录。所有主流浏览器都支持该方法(包括IE10)。
它们接受三个参数,依次为:
state:一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数。如果不需要这个对象,此处可以填null。
title:新页面的标题,但是所有浏览器目前都忽略这个值,因此这里可以填null。
url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。
它的state属性保存当前页面的state对象
var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "2.html"); history.state // { foo: "bar" }Navigator对象与Screen对象
Window对象的navigator属性,指向一个包含浏览器相关信息的对象。
window.screen对象包含了显示设备的信息。screen.height和screen.width两个属性,一般用来了解设备的分辨率。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/86318.html
摘要:插件开发前端掘金作者原文地址译者插件是为应用添加全局功能的一种强大而且简单的方式。提供了与使用掌控异步前端掘金教你使用在行代码内优雅的实现文件分片断点续传。 Vue.js 插件开发 - 前端 - 掘金作者:Joshua Bemenderfer原文地址: creating-custom-plugins译者:jeneser Vue.js插件是为应用添加全局功能的一种强大而且简单的方式。插....
摘要:基础巩固基础总结使用已经好几年了,由于工作主要是做服务端开发,在工作中逐渐发现的使用范围原来越广泛。这里要注意,务必将基础部分掌握牢靠,磨刀不误砍柴功,只有将基础部分掌握并建立起系统的知识体系,在后面学习衍生的其他模式才能游刃有余。 基础巩固:JavaScript基础总结 使用JavaScript已经好几年了,由于工作主要是做服务端开发,在工作中逐渐发现JavaScript的使用范围原...
摘要:何时只要让程序延迟执行一件事时如何件事启动定时器让程序等待毫秒后,自动执行一次,执行后自动停止停止定时器定时器原理定时器中的任务函数,必须等待主程序所有语句执行后,才能执行。将事件监听对象加入到浏览器的监听队列中。 前端知识点总结——BOM 1.BOM: Browser Object Model 什么是: 专门操作浏览器窗口的API 没有标准, 导致浏览器兼容性问题 包括: w...
摘要:最近遇到的前端面试题更新版前端掘金个人博客已上线,欢迎前去访问评论无媛无故的个人博客以下内容非本人原创,是整理后觉得更容易理解的版本,欢迎补充。 一道面试题引发的对 javascript 类型转换的思考 - 前端 - 掘金 最近群里有人发了下面这题:实现一个函数,运算结果可以满足如下预期结果: ... 收集 JavaScript 各种疑难杂症的问题集锦 - 前端 - 掘金 从原博客迁移...
摘要:最近遇到的前端面试题更新版前端掘金个人博客已上线,欢迎前去访问评论无媛无故的个人博客以下内容非本人原创,是整理后觉得更容易理解的版本,欢迎补充。 一道面试题引发的对 javascript 类型转换的思考 - 前端 - 掘金 最近群里有人发了下面这题:实现一个函数,运算结果可以满足如下预期结果: ... 收集 JavaScript 各种疑难杂症的问题集锦 - 前端 - 掘金 从原博客迁移...
阅读 3653·2021-09-07 10:19
阅读 3596·2021-09-03 10:42
阅读 3555·2021-09-03 10:28
阅读 2516·2019-08-29 14:11
阅读 766·2019-08-29 13:54
阅读 1547·2019-08-29 12:14
阅读 377·2019-08-26 12:12
阅读 3578·2019-08-26 10:45