1.对象检测
上一节中,我们一直强调,网页的访问者的可能使用了不支持JavaScrip的浏览器t或使用的是古老的浏览器。因此,JavaScript脚本可能在这些访问者的浏览器上不能正常工作。
解决这个问题的方案中之一:检查浏览器对JavaScript的支持程度。
对象检测:只要将某个方法打包在一个if语句,就可以根据这个if语句的条件表达式的求值结果决定采取怎样的行动。
注意的是,使用对象检测时,一定要删除方法名后面的圆括号,否则就是在测试方法的结果。
function myFucntion(){
if(docuement.getElementById){
statements using getElementById;
}
}
//这个方法的不足之处在于,这样编写的函数会多一对花括号。
//把测试条件改为 “如果你不理解这个方法,请离开”
window.onload=function(){
if(!document.getElementsByTagName) return false;
var links=document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
if(links[i].getAttribute("class")=="popup"){
links[i].onclick=function(){
popUp(this.getAttribute("href");
return false;
}
}
}
}
2.浏览器嗅探技术
测试要使用的属性或方法是否存在的方法还有浏览器的嗅探。
浏览器嗅探:通过提取浏览器供应商提供的信息来解决向后兼容问题。
浏览器有一下不足之处,所以还是一种风险较大的技术:
①浏览器会“撒谎”
②浏览器嗅探脚本会变得越来越复杂
③许多浏览器嗅探脚本在进行测试时要求浏览器的版本号必须得到精确的匹配。