主流浏览器
- IE :从IE10开始支持ES6标准;
- Chrome:Google的基于Webkit内核,内置JavaScript引擎V8。时刻保持自升级;
- Safari:Apple的Mac系统自带的基于Webkit内核的浏览器,目前Safari版本是9.x,支持ES6;
- Firefox:Mozilla自制的Gecko内核,内置JavaScript引擎OdinMonkey。时刻保持自升级;
移动设备上目前iOS和Android主要使用Apple的Safari和Google的Chrome,最新版本均支持ES6。
国产浏览器,核心调用的是IE,也有号称同时支持IE和Webkit的“双核”浏览器。
浏览器对象
JavaScript可以获取浏览器提供的很多对象,并进行操作。
1. window
innerWidth
和innerHeight
:获取浏览器窗口内部宽高outerWidth
和outerHeight
:获取浏览器窗口整个宽高
【兼容性:IE<=8不支持。】
2. navigator
表示浏览器的信息:
- navigator.appName:浏览器名称;
- navigator.appVersion:浏览器版本;
- navigator.language:浏览器设置的语言;
- navigator.platform:操作系统类型;
- navigator.userAgent:浏览器设定的User-Agent字符串。
navigator的信息可以很容易地被用户修改,所以JavaScript读取的值不一定是正确的。
3. screen
表示屏幕的信息:
- screen.width:屏幕宽度,以像素为单位;
- screen.height:屏幕高度,以像素为单位;
- screen.colorDepth:返回颜色位数,如8、16、24。
4. location
表示当前页面的URL信息
http://www.example.com:8080/path/index.html?a=1&b=2#TOP
获取各部分
location.protocol; // 'http'
location.host; // 'www.example.com'
location.port; // '8080'
location.pathname; // '/path/index.html'
location.search; // '?a=1&b=2'
location.hash; // 'TOP'
location.assign('/')
:加载新页面
location.reload()
:重新加载当前页面
5. document
表示当前页面。
由于HTML在浏览器中以DOM形式表示为树形结构,document对象就是整个DOM树的根节点。
document.title
:动态改变<title>xxx</title>
document.getElementById()
:按ID获得DOM节点document.getElementsByTagName()
:按Tag名获得DOM节点document.cookie
:读取当前页面的Cookie
为了确保安全(用户的登录信息通常存在Cookie中),服务器端在设置Cookie时,应该始终坚持使用
httpOnly
设定了httpOnly
的Cookie将不能被JavaScript读取。
这个行为由浏览器实现,主流浏览器均支持httpOnly选项
6. history
保存了浏览器的历史记录
back()
:后退forward ()
:前进
由于大量AJAX和页面交互,简单粗暴地调用对用户不友好,
不应该使用history这个对象