JavaScript兼容性处理
1.得到触发事件的元素
事件:在IE/Opera中,是window.event,而在Firefox中,是event。
事件的对象:
在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持。
//IE是把event事件对象作为全局对象window的一个属性;可以使用event或window.event来访问;
//FireFox和Chrome等主流浏览器是通过把【事件对象】作为【事件响应函数】的【参数】进入传入的;
//兼容性的写法示例:
domElement.onclick = function( e ){
e = e || window.event;//或(||)书写顺序有讲究,不能随意换
var obj = e.target || e.srcElement;
}
2.旋转div
//该示例中将div旋转7度
div.style.transform = 'rotate(7deg)';
div.style.webkitTransform = 'rotate(7deg)'; /* Safari 和 Chrome */
div.style.mozTransform = 'rotate(7deg)'; /* Firefox */
div.style.msTransform = 'rotate(7deg)'; /* IE 9 */
div.style.oTransform = 'rotate(7deg)'; /* Opera */
3. XMLHttpRequest对象
var xhr;
if(window.XMLHttpRequest){
//code for IE7+,FireFox,Chrome,Opera,Safari
xhr = new XMLHttpRequest();
}
else{
//code for IE6,IE5
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
在IE浏览器中,如果通过Ajax发送GET请求,那么IE浏览器认为同一个URL只有一个结果。
而在其他高级浏览器中,URL返回的结果可以进行实时更新。