利用js判断浏览器类型:
function myBrowser(){
var userAgent = navigatoruserAgent; //取得浏览器的userAgent字符串
var isOpera = userAgentindexOf("Opera") > -1;
if (isOpera) {
return "Opera"
}; //判断是否Opera浏览器
if (userAgentindexOf("Firefox") > -1) {
return "FF";
} //判断是否Firefox浏览器
if (userAgentindexOf("Chrome") > -1){
return "Chrome";
}
if (userAgentindexOf("Safari") > -1) {
return "Safari";
} //判断是否Safari浏览器
if (userAgentindexOf("compatible") > -1 && userAgentindexOf("MSIE") > -1 && !isOpera) {
return "IE";
}; //判断是否IE浏览器
}
//以下是调用上面的函数
var mb = myBrowser();
if ("IE" == mb) {
alert("我是 IE");
}
if ("FF" == mb) {
alert("我是 Firefox");
}
if ("Chrome" == mb) {
alert("我是 Chrome");
}
if ("Opera" == mb) {
alert("我是 Opera");
}
if ("Safari" == mb) {
alert("我是 Safari");
}
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。
1、Number类型
Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。
2、String类型
在JS中字符串需要使用引号引起来。使用双引号或单引号都行,但是不要混着用。引号不能嵌套,双引号不能放双引号,单引号不能放单引号。
3、Boolean类型
该类型只有两个值,true和false。
4、Undefined类型
只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。
5、Null类型
null类型被看做空对象指针,null类型也是空的对象引用。
6、Object类型
js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。
<script type="text/javascript">
function VirtualTrack(id,type) {
if(type=='text'){
documentgetElementById(id)value = "我是个输入框";
}else if(type=='button'){
documentgetElementById(id)value = "我是个按钮";
}
}
</script>
<input id="Text2" type="text" />
<p><input id="Text1" type="text" value="" onblur="VirtualTrack('Text1','text')"/></p>
<p><input id="Button1" type="button" value="button" onblur="VirtualTrack('Button1','button')"/></p>
最常见的判断方法:typeof
alert(typeof a) ------------> string
alert(typeof b) ------------> number
alert(typeof c) ------------> object
alert(typeof d) ------------> object
alert(typeof e) ------------> function
alert(typeof f) ------------> function
其中typeof返回的类型都是字符串形式,需注意,例如:
alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false
另外typeof 可以判断function的类型;在判断除Object类型的对象时比较方便。
判断已知对象类型的方法: instanceof
alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false
注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
根据对象的constructor判断: constructor
alert(cconstructor === Array) ----------> true
alert(dconstructor === Date) -----------> true
alert(econstructor === Function) -------> true
注意: constructor 在类继承时会出错
eg,
function A(){};
function B(){};
Aprototype = new B(); //A继承自B
var aObj = new A();
alert(aobjconstructor === B) -----------> true;
alert(aobjconstructor === A) -----------> false;
而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:
alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;
言归正传,解决construtor的问题通常是让对象的constructor手动指向自己:
aobjconstructor = A; //将自己的类赋值给对象的constructor属性
alert(aobjconstructor === A) -----------> true;
alert(aobjconstructor === B) -----------> false; //基类不会报true了;
通用但很繁琐的方法: prototype
alert(ObjectprototypetoStringcall(a) === ‘[object String]’) -------> true;
alert(ObjectprototypetoStringcall(b) === ‘[object Number]’) -------> true;
alert(ObjectprototypetoStringcall(c) === ‘[object Array]’) -------> true;
alert(ObjectprototypetoStringcall(d) === ‘[object Date]’) -------> true;
alert(ObjectprototypetoStringcall(e) === ‘[object Function]’) -------> true;
alert(ObjectprototypetoStringcall(f) === ‘[object Function]’) -------> true;
以上就是关于如何利用js判断浏览器类型全部的内容,包括:如何利用js判断浏览器类型、js数据类型、如何使js获取html控件类型,并使各主流浏览器兼容最大等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)