创建: 2017/10/11
更新: 2017/10/14 标题加上【WIP】,增加【TODO】
更新: 2018/01/22 更改标题 [客户端JavaScript Web Object, URLEncode] -> [客户端JavaScript Web Object]
给window object部分增加了id
【TODO】
增加: 补充Window的操作,p362
客户端JavaScript概要 |
植入JavaScript的方法 |
《script》中 |
《script》
...
《/script》 |
《script》链接外部 |
《script src="..."》《/script》 |
事件句柄里(字符串)
基本不用 |
《... onclick="..." ...》 |
JavaScript: URL
基本不用 |
《a href="..."》...《/a》
href内部制定JavaScript
例: |
|
浏览器上的JavaScript处理流程 |
|
生成Window Object
注: 这是网页的全局变量,一个tab一个 |
|
生成Window Object的属性Document Object
开始解析网页,构筑DOM
Document
Object的属性readyState 赋值 "loading"
注:
DOM: 文档对象模型(Document Object Model) |
|
解析网页时候遇到《script》,则同期解析script
解析script是html的解析暂停 |
|
解析完成,构筑好DOM
Document
Object的属性readyState 赋值 "interactive"
|
|
浏览器对Document Object发生DOMContentLoaded事件
开始读取img等外部资源 |
|
读取完成后
Document
Object的属性readyState 赋值
"complete" 浏览器对Window
Object发生load事件 |
|
自定义的事件等登陆到WindowWObject的load事件上
Window.onload
注: load发生在所有文件读取完成后(包括图象等资源), 会让用户等待
所以可以增加事件监听器,把初期登陆加在DOMContentLoaded
上 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async
defer |
async |
非同期读取script
html的读取不会暂停 |
defer |
html读取完(DOM构筑完成后)读取
可以代替DOMContentLoaded来进行事件登陆 |
|
|
|
|
|
|
|
Window
Object |
概要 |
全局Object
所有Object都是Window Object的属性
访问时可以省略window. |
主要属性 |
screen |
|
document |
|
location |
|
navigator |
|
history |
|
event |
|
console |
|
window |
Window自己 |
self |
和window一样 |
parent |
window是表格内的window时返回上一层window
否则返回自己 |
top |
window是表格内的window时返回最上层window
否则返回自己 |
opener |
返回打开现在窗口的窗口 |
frames[] |
包含window内各表格的参照 |
closed |
现在的窗口是否关闭
true/false |
name |
取得/设置现在窗口的名字 |
status |
取得/设置状态栏的text |
screenX
screenY |
浏览器在屏幕的位置
IE不支持 |
screenLeft
screenTop |
和上一个相同
Firefox不支持 |
innerHeight
innerWidth |
window高与框(不包含scroll bar) |
outerHeight
outerWidth |
window高与框(包含scroll bar) |
scrollX
scrollY |
水平/垂直方向滚动的像素(pixel) |
pageXOffset
pageYOffset |
和上一个相同 |
|
|
|
|
|
|
|
主要方法 |
|
|
prompt("...", default) |
|
confirm("...") |
|
setTimeout(callback, interval) |
|
setInterval(callback, delay) |
|
clearTimeout(timeoutID) |
|
clearInterval(intervalID) |
|
blur() |
从当前窗口移除聚焦 |
focus() |
给指定窗口聚焦 |
close() |
关闭窗口 |
open() |
打开新窗口 |
moveBy(x, y) |
相对移动 |
moveTo(x, y) |
绝对移动 |
resizeBy(width, height) |
窗口大小按指定尺寸放大 |
resizeTo(width, height) |
窗口大小变为指定尺寸 |
scrollBy(x, y) |
滚动指定距离 |
scrollTo(x, y) |
滚动到指定位置 |
print() |
打开确认打印的对话框 |
|
|
|
|
|
|
|
|
|
Location
Object |
|
管理地址栏 |
呼出方法 |
location
window.location
document.location |
属性 |
hash |
标签
例:
#anchor |
host |
主机名: 接口号
例: www.example.com:80 |
hostname |
主机名
例: www.example.com |
href |
完整的URL
例: http://www.example.com:80/test/index.html?q=value#anchor
注:
location.assign(...)
location.href = ...两者作用相同 |
pathname |
相对于主页的相对路径
例: /test |
port |
接口号
例: 80 |
protocol |
协议
例: http: |
search |
请求的字符串
例: ?q=value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
方法 |
assign(url)
字符串 |
读取指定的url
记录在浏览历史 注:
location.assign(...)
location.href = ...两者作用相同 |
reload() |
重新读取 |
replace(url) |
跳向网页
不记录在浏览历史里 |
toString() |
返回location.href |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
URL encode |
概要 |
字符串的16进制字符编码以比特为单位用%分隔表示
字母, 数字,
-_!~*.()'不会被转换 |
编码方法 |
|
encodeURIComponent |
|
encodeURI
不编码字母, 数字, -_!~*.()'不会被转换
和(;,.?:@&=+$),(#) |
|
解码方法 |
|
decodeURIComponent |
|
decodeURI |
|
|
|
|
|
|
|
|
|
|
|
History
Object |
|
管理窗口的浏览历史 |
呼出方法 |
history
window.history |
属性 |
length |
只可读
现在session的履历数 |
scrollRestoration |
操作浏览浏览历史后滚动位置是否自动复原
"auto"/"manual" |
state |
只可读
在pushState, replaceState设定的state的值 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
方法 |
back() |
返回一个 |
forward() |
前进一个 |
go(number) |
指定移动数
正: 前进
负: 返回 |
pushState(state, title,
url) |
不跳转并且追加窗口浏览历史
state |
通过popstate时间的state属性参照 |
title |
新履历的标题 |
url |
可省略,省略则为当前url |
|
|
|
|
|
replaceState(state, title, url) |
跳转并且追加窗口浏览历史 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Navigator
Object |
概要 |
Navigator 对象包含有关浏览器的信息 |
呼出 |
navigator
window.navigator |
属性
只可读 |
只可读
appCodeName |
浏览器的代码名字
不一定正确 |
appName |
浏览器的名字
不一定正确 |
appVersion |
浏览器的版本
不一定正确 |
geolocation |
表示浏览器物理位置的Geolocation Object |
language |
浏览器对应的MIME类型的 MimeTypeArray |
mimeTypes[] |
|
onLine |
是否连接网络 |
platform |
系统名
Windows --- "win32"
Mac --- "MacIntel" |
plugins |
浏览器安装的常见一览
Plugin Object的数组 |
userAgent |
USER-AGENT header部分传送的字符串 |
|
方法 |
|
是否可以使用Java |
getUserMedia() |
获取设备的麦克风, 摄像头的流
audio, video |
registerContentHandler(mimeType, uri,
title) |
把网页和特定mime类型关联 |
registerProtocolHandler(protocol, uri,
title) |
把网页和特定协议关联 |
vibrate() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Screen Object |
概要 |
包含显示屏大小以及色数等信息 |
呼出 |
screen
window.screen |
属性
只可读 |
只可读
availTop |
可以使用的最小的y坐标
可用指除了任务栏以外的部分 |
availLeft |
可以使用的最小的x坐标 |
availHeight |
可以使用的高度 |
availWidth |
可以使用的宽度 |
colorDepth |
豁免的色深度(位数): 约1678万色的话24 |
height |
画面高度 |
width |
画面宽度 |
orientation |
画面方向 |
|
|
|
|
|
|
|
|
|
|
|
Document
Object |
概要 |
表示页面内容
接入DOM |
呼出 |
document
window.document |
DOM关联 |
http://blog.sina.com.cn/s/blog_dcb875d90102yc1u.html |
主要属性 |
characterSet |
只可读
使用的字符编码 |
cookie |
获取cookies
以;分隔的列表(list?) |
domain |
只可读
主页 |
lastModified |
只可读
最终更新日 |
location |
document.location
window.location
location
三个一样 |
readyState |
只可读
文件读取状况 |
referrer |
只可读
链接向当前页面的url |
title |
页面的标题 |
URL |
只可读
页面的URL |
|
|
|
主要方法 |
close() |
关闭document.open()打开的页面
终止写入 |
open() |
为了写入打开页面 |
write(text)
不用 |
写入到document.open()打开的文件 |
writeIn(text) |
写入到document.open()打开的文件
并换行 |
|
|
|
|
|
|
|
|
|
Window的操作 |
|
暂略,p362 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|