有关JS兼容性的工作总结_js兼容性总结
有关JS兼容性的工作总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“js兼容性总结”。
关于JS兼容性的总结
在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Firefox的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。
JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需要判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
在不同的浏览器中对js的支持程度,语法要求都不大一样!在网上查寻资料,我目前暂时认识比较好的判断代码如下:
function getOs()
{
var OsObject = “”;
if(navigator.userAgent.indexOf(“MSIE”)>0){
return “MSIE”;
}
if(isFirefox=navigator.userAgent.indexOf(“Firefox”)>0){
return “Firefox”;
}
if(isSafari=navigator.userAgent.indexOf(“Safari”)>0){
return “Safari”;
}
if(isCamino=navigator.userAgent.indexOf(“Camino”)>0){
return “Camino”;
}
if(isMozilla=navigator.userAgent.indexOf(“Gecko/”)>0){
return “Gecko”;
}
}
alert(“您的浏览器类型为:”+getOs());
因此在扩展的代码中首先要对浏览器进行了判断,判断它是否为Firefox,我添加的代码语句为:
FF=(navigator.userAgent.indexOf(“Firefox”)>0)?true:false;然后对初始状态进行设置,在W3C标准下,兼容FF的写法,在initIt()方法中扩展了: else{
tempColl = document.getElementsByTagName(“DIV”);
for(i=0;i
if(tempColl[i].claName == “child”)
tempColl[i].style.display = “block”;
} } 然后扩展到FF,function expandFF(el){ whichEl = document.getElementById(el + “Child”);var event=getEvent();//调用方法得到event事件对象
whichIm = event.target;if(whichEl.style.display == “none”){
whichEl.style.display = “block”;
whichIm.src = “images/line_title.gif”;} else {
whichEl.style.display = “none”;
whichIm.src = “images/hdclose.gif”;}
event.cancelBubble = true;} 其中,对event事件这里以方法的形式来调用: //得到EVENT对象
function getEvent(){
if(document.all)
return window.event;
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event||arg0.constructor==MouseEvent)||(typeof(arg0)==“object” && arg0.preventDefault && arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;}