印象中IE8是不支持HTML5的,后来零零碎碎看到部分HTML5支持,今天特意归档一下,看看IE8到底支持多少HTML5, stackoverflow上有人说,IE8在当年发布时,Microsoft承诺:With full CSS 2.1, strong HTML 5 support ,参见:http://msdn.microsoft.com/en-us/library/cc288472 。full CSS2.1 没问题,这个strong HTML5 support 到底在哪里?为此特意去Microsoft官方摘录一下:
1.网络离线检测:window.navigator.onLine
if(!window.navigator.onLine){
alert('offline');
}
2.本地存储:window.localStorage
if( 'localStorage' in window && null != window.localStorage ){
localStorage.setItem('test', 'hello world');
alert(localStorage.getItem('test'));
localStorage.removeItem('test');
}
3.Ajax跨域请求 XDomainRequest() ,仅IE8+支持,其他浏览器的XMLHttpRequest对象内置支持跨域请求。
if('XDomainRequest' in window && null != window.XDomainRequest){
// test
/* 使用方法同 XMLHttpRequest对象
var rq = new XDomainRequest();
rq.onload = function(){};
rq.open('GET', 'http://www.example.com/');
rq.send();
*/
alert('support XDomainRequest');
}
4.跨文档消息传输:postMessage()
window.top.postMessage('hello, from cross domain iframe message', 'http://www.example.com');
5.本地JSON对象支持:JSON 两个方法:JSON.stringify(); JSON.parse();
if('JSON' in window && null!=window.JSON){
alert(JSON.parse( JSON.stringify({'hello': 'world'}) )['hello']);
}
6.Ajax链接 前进后退支持:window.onhashchange()
7.CSS选择器:document.querySelectorAll(); // 一直以为不支持!
果然是非常strong的support啊。