浏览器环境

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 用来指定本次预检请求的有效期,单位为秒 该字段可选
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • 检测用户浏览器信息的时候 最好不要用userAgent来检测,,而用功能检测法 将页面导航到新页面的方法(不完整)...
    招展君阅读 134评论 0 0
  • HTTP Header 我们知道HTTP协议中定义了Header,是一组KV集合。 在请求时可以把信息放在Head...
    無式阅读 3,233评论 0 1
  • 声明:这些题目是在某个前端群看到的,在这分享给大家,如有侵权,请私信。 1.一些开放性题目 position的值,...
    一岁一枯荣_阅读 6,518评论 0 33
  • 本文旨在加深对前端知识点的理解,资料来源于网络,由本人(博客:http://segmentfault.com/u/...
    风起云帆阅读 330评论 0 0
  • 安装 使用 创建项目 进入项目创建虚拟环境 进入虚拟环境 退出虚拟环境 在python3环境安装superviso...
    你猜_19ca阅读 201评论 0 0