浏览器环境
2017-09-22 本文已影响8人
Viaphlyn
window对象
API | MEAN | Ps |
---|---|---|
属性 | ||
window.window | 指向自身 | |
window.name | 设置当前浏览器窗口的名字 | |
window.location | 返回一个location对象,用于获取窗口当前的URL信息 | 等同于document.location对象 |
closed | 表示窗口是否关闭 | 返回一个布尔值 |
opener | 返回打开当前窗口的父窗口 | 无父窗口,返回null |
frames | 返回一个类似数组的对象 | 成员为页面内所有框架窗口,包括frame和iframe |
length | 返回当前网页包含的框架总数 | 无,返回0 |
screenX | 返回浏览器窗口左上角相对于当前屏幕左上角((0, 0))的水平距离 | 单位为像素 |
screenY | 垂直距离 | 同上 |
innerHeight | 返回网页在当前窗口中可见部分的高度 | “视口”(viewport),单位为像素 |
innerWidth | 宽度 | 包括滚动条的高度和宽度 |
outerHeight | 返回浏览器窗口的高度 | 单位为像素 |
outerWidth | 宽度 | 包括浏览器菜单和边框 |
pageXOffset | 返回页面的水平滚动距离 | px |
pageYOffset | 垂直 | px |
window.navigator对象 | 返回浏览器的User-Agent字符串,标示浏览器的厂商和版本信息 | |
navigator.userAgent | 返回浏览器的User-Agent字符串 | 标示浏览器的厂商和版本信息 |
navigator.plugins | 返回一个类似数组的对象,成员是浏览器安装的插件 | 如Flash、ActiveX等 |
platform | 返回用户的操作系统信息 | |
onLine | 表示用户当前在线还是离线 | 返回一个布尔值 |
geolocation | 包含用户地理位置的信息 | 返回一个Geolocation对象 |
javaEnabled() | 表示浏览器是否能运行Java Applet小程序 | 返回一个布尔值 |
cookieEnabled | 表示浏览器是否能储存Cookie | 返回一个布尔值 |
window.screen对象 | 包含了显示设备的信息 | |
screen.height | 显示设备的高度 | 单位为像素 |
screen.width | 宽度 | 用来了解设备的分辨率 |
window对象的方法 | ||
window.moveTo() | 将移动浏览器窗口到指定位置 | 参数(窗口左上角距离屏幕左上角的水平距离,垂直距离)单位为像素 |
window.moveBy() | 将窗口移动到一个相对位置 | (窗口左上角向右移动的水平距离,向下移动的垂直距离) |
scrollTo() | 将网页的指定位置,滚动到浏览器左上角 | 参数(相对于整张网页的横坐标,纵坐标),别名window.scroll |
scrollBy | 将网页移动指定距离,单位为像素 | (向右滚动的像素,向下滚动的像素) |
open() | 新建另一个浏览器窗口 | 并返回该窗口对象 |
print() | 跳出打印对话框 | 同用户点击菜单里面的“打印”命令效果相同 |
getComputedStyle() | 返回一个包含该HTML元素的最终样式信息的对象 | 接受一个HTML元素作为参数 |
matchMedia() | 检查CSS的mediaQuery语句 | |
focus() | 激活指定当前窗口,使其获得焦点 | 当前窗口获得焦点时,会触发focus事件;失去焦点会触发blur事件 |
getSelection() | 表示用户现在选中的文本 | 返回一个Selection对象 |
事件 | ||
load事件 | 发生在文档在浏览器窗口加载完毕时 | |
window.onload属性 | 可以指定这个事件的回调函数 | |
error事件 | 脚本发生错误时触发 | |
indow.onerror属性 | 对该事件指定回调函数 | |
URL的编码/解码方法 | ||
encodeURI | 将元字符和语义字符之外的字符,都进行转义 | 参数是一个字符串,代表整个URL |
encodeURIComponent | 只转除了语义字符之外的字符,元字符也会被转义 | 参数通常是URL的路径或参数值,而不是整个URL |
decodeURI | 还原转义后的URL | 是encodeURI方法的逆运算 |
decodeURIComponent | 还原转义后的URL片段 | 是encodeURIComponent方法的逆运算 |
浏览器与用户互动的全局方法 | ||
alert() | 弹出的对话框,只有一个“确定”按钮,]用来通知用户某些信息 | 参数只能是字符串 |
prompt | 弹出的对话框,在提示文字的下方,还有一个输入框,要求用户输入信息,并有“确定”和“取消”两个按钮 | 用来获取用户输入的数据 |
confirm | 弹出的对话框,除了提示信息之外,只有“确定”和“取消”两个按钮 | 用来征询用户的意见 |
window.postMessage | 允许跨窗口通信,不论这两个窗口是否同源 | 跨文档通信 API |
window.postMessage | 读写其他窗口的 LocalStorage |
history对象
API | MEAN | Ps |
---|---|---|
history.length | 浏览网址个数 | |
back() | 移动到上一个访问页面 | 等同于浏览器的后退键。 |
forward() | 移动到下一个访问页面 | 等同于浏览器的前进键。 |
go() | 接受一个整数作为参数,移动到该整数指定的页面 | 如go(1)相当于forward(),go(-1)相当于back() |
history.pushState() | 浏览历史中添加记录 | 参数(state,title,url) |
replaceState() | 修改记录 | |
history.state | 该属性返回当前页面的state对象 | |
popstate事件 | 每当同一个文档的浏览历史(即history对象)出现变化时,就会触发popstate事件 | |
URLSearchParams API | 用于处理URL之中的查询字符串,即问号之后的部分 | 方法has()、get、getAll、set、delete、append、toString、keys、values、entries |
Cookie
API | MEAN | Ps |
---|---|---|
window.navigator.cookieEnabled | 表示浏览器是否打开 Cookie 功能返回一个布尔值 | |
document.cookie | 返回当前网页的 Cookie | 可写 |
Set-Cookie属性 | ||
value | 它是一个键值对,用于指定Cookie的值 | 必需的 |
expires | 用于指定Cookie过期时间 | 格式采用Date.toUTCString()的格式 |
domain | 指定Cookie所在的域名 | 未指定,默认为设定该Cookie的域名 |
path | 用来指定路径,必须是绝对路径(比如/、/mydir) | 如果未指定,默认为请求该 Cookie 的网页路径 |
secure | 用来指定Cookie只能在加密协议HTTPS下发送到服务器 | 只是一个开关,不需要指定值。如果通信是HTTPS协议,该开关自动打开 |
max-age | 用来指定Cookie有效期 | |
HttpOnly | 用于设置该Cookie不能被JavaScript读取 |
Web Storage:浏览器端数据储存机制
API | MEAN | Ps |
---|---|---|
Web Storage | 使网页可以在浏览器端储存数据 | 分成两类:sessionStorage和localStorage |
sessionStorage | 保存的数据用于浏览器的一次会话,当会话结束(通常是该窗口关闭),数据被清空 | 参数("key","value") |
localStorage | 保存的数据长期存在 | 下一次访问该网站的时候,网页可以直接读取以前保存的数据 |
removeItem | 清除某个键名对应的数据 | |
clear | 清除所有保存的数据 |
AJAX
API | MEAN | Ps |
---|---|---|
XMLHttpRequest对象 | 用来在浏览器与服务器之间传送数据 | |
XMLHttpRequest实例的属性 | ||
readyState | 用一个整数和对应的常量表示XMLHttpRequest请求当前所处的状态 | 只读0-UNSENT,1-OPENED,2-HEADERS_RECEIVED,3-LOADING,4-DONE |
onreadystatechange | 指向一个回调函数,当readystatechange事件发生的时候,这个回调函数就会调用 | 且XMLHttpRequest实例的readyState属性也会发生变化 |
response | 返回接收到的数据体(即body部分) | 只读 |
responseType | 指定服务器返回数据的类型 | ”“:字符串(默认值)、 “arraybuffer”、 “blob” 、“document”、“json”、“text” |
responseText | 返回从服务器接收到的字符串 | 如果本次请求没有成功或者数据不完整,该属性就会等于null,只读 |
responseXML | 返回从服务器接收到的Document对象 | 只读 |
status | 表示本次请求所得到的HTTP状态码,它是一个整数 | 一般来说,如果通信成功的话,这个状态码是200。只读 |
statusText | 返回一个字符串,表示服务器发送的状态提示 | 不同于status属性,该属性包含整个状态信息,比如”200 OK“。只读 |
timeout | 等于一个整数,表示多少毫秒后 | 如果请求仍然没有得到结果,就会自动终止。如果该属性等于0,就表示没有时间限制 |
事件监听接口 | ||
onloadstart | 请求发出 | |
onprogress | 正在发送和加载数据 | |
onabort | 请求被中止,比如用户调用了abort()方法 | |
onerror | 请求失败 | |
onload | 请求成功完成 | |
ontimeout | 用户指定的时限到期,请求还未完成 | |
onloadend | 请求完成,不管成果或失败 | |
withCredentials | 布尔值,表示跨域请求时,用户信息是否会包含在请求之中 | 默认为false |
XMLHttpRequest实例的方法 | ||
abort() | 终止已经发出的HTTP请求 | onreadystatechange回调函数也会被调用 |
getAllResponseHeaders | 返回服务器发来的所有HTTP头信息 | 格式为字符串,每个头信息之间使用CRLF分隔,如果没有受到服务器回应,该属性返回null |
getResponseHeader | 返回HTTP头信息指定字段的值 | 如果还没有收到服务器回应或者指定字段不存在,则该属性为null |
open | 指定发送HTTP请求的参数 | 参数(method、url、sync、user、password) |
end | 用于实际发出HTTP请求 | 若不带参数,表示HTTP请求只包含头信息,只有一个URL例GET请求;若带有参数,表示除了头信息,还带有包含具体数据的信息体,例POST请求 |
setRequestHeader | 设置HTTP头信息 | 该方法必须在open()之后、send()之前调用 |
overrideMimeType() | 指定服务器返回数据的MIME类型 | 在send()之前调用 |
XMLHttpRequest实例的事件 | ||
readyStateChange事件 | readyState属性的值发生改变,就会触发 | |
progress事件 | 上传文件时会不断返回上传的进度 | |
load事件 | 服务器传来的数据接收完毕 | |
error事件 | 表示请求出错 | |
abort事件 | 表示请求被中断 | |
loadend事件 | 表示请求结束,但不知道其是否成功 | |
文件上传 | ||
POST方法 | enctype属性设为application/x-www-form-urlencoded | 默认方法 |
POST | enctype属性设为text/plain | |
POST | enctype属性设为multipart/form-data | |
GET方法 | enctype属性将被忽略 | |
Fetch API | ||
stream数据流 | ||
.text() | 返回字符串 | |
.json() | 返回一个JSON对象 | |
.formData() | 返回一个FormData对象 | |
.blob() | 返回一个blob对象 | |
.arrayBuffer() | 返回一个二进制数组 | |
fetch() | 返回一个Promise对象,并将一个response对象传给回调函数 | |
Headers对象 | 用来构造/读取HTTP数据包的头信息 | |
Request对象 | 用来构造HTTP请求 | 第二个参数,表示配置对象 |
Response | 属性:status、statusText、ok、headers、url、type | 静态方法Response.error() Response.redirect(url, status) |
body | 可能的数据类型:ArrayBuffer、ArrayBufferView(Uint8Array等)、Blob/File、string、URLSearchParams、 FormData | 读取的方法:arrayBuffer()、blob()、 json()、text()、 formData() |
CORS通信
API | MEAN | Ps |
---|---|---|
CORS请求相关的字段 | ||
Access-Control-Allow-Origin | 表示接受任意域名的请求 | 该字段是必须的。它的值要么是请求时Origin字段的值,要么是一个* |
Access-Control-Allow-Credentials | 它的值是一个布尔值,表示是否允许发送Cookie | 可选 |
Access-Control-Expose-Headers | CORS请求时,指定拿到其他字段 | 可选 |
预检请求的回应 | ||
Access-Control-Allow-Methods | 返回的是所有支持的方法,而不单是浏览器请求的那个方法。这是为了避免多次“预检”请求 | 该字段必需,它的值是逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法 |
Access-Control-Allow-Headers | 是一个逗号分隔的字符串,表明服务器支持的所有头信息字段,不限于浏览器在“预检”中请求的字段 | 如果浏览器请求包括Access-Control-Request-Headers字段,则Access-Control-Allow-Headers字段是必需的 |
Access-Control-Allow-Credentials | 该字段与简单请求时的含义相同 | |
Access-Control-Max-Age | 用来指定本次预检请求的有效期,单位为秒 | 该字段可选 |