转一个js类型判断函数,支持返回dom 元素的类型,像HTMLBody
2013-04-11 21:26
786 查看
function varType(v){
if(typeof v==="object"){
if(v===null)return 'null';
if(v.constructor)
return (v.constructor.toString()).match(/(?: )[\w\$]+/)[0];
if(typeof typeof2==='undefined' && window.execScript){
window.execScript('Function vbsTypeName(o):vbsTypeName=TypeName(o):End Function','vbscript');
window.execScript('function typeof2(o){return vbsTypeName(o)}','jscript');
}
if(typeof typeof2!=='undefined'){
return typeof2(v);
}
return "object";
}
return typeof v;
}
//对于普通js常量和js对象,各浏览器是基本一致的
alert(varType()); //undefined
alert(varType(100)); //number
alert(varType({})); //Object
alert(varType([])); //Array
alert(varType(/ /)); //RegExp
alert(varType(new Date())); //Date
alert(varType(Date)); //function
alert(varType(Object)); //function
alert(varType(RegExp)); //function
//对于DOM对象,各浏览器可能会有不同值
alert(varType(window)); //IE:HTMLWindow2 FF:Window
alert(varType(document)); //IE:HTMLDocument FF:HTMLDocument
alert(varType(document.body)); //IE:HTMLBody FF:HTMLBodyElement
alert(varType(Option)); //IE:Object FF:function
alert(varType(Image)); //IE:Object FF:function
alert(varType(navigator)); //IE:DispHTMLNavigator FF:Navigator
alert(varType(document.getElementsByTagName('DIV')[0]));
if(typeof v==="object"){
if(v===null)return 'null';
if(v.constructor)
return (v.constructor.toString()).match(/(?: )[\w\$]+/)[0];
if(typeof typeof2==='undefined' && window.execScript){
window.execScript('Function vbsTypeName(o):vbsTypeName=TypeName(o):End Function','vbscript');
window.execScript('function typeof2(o){return vbsTypeName(o)}','jscript');
}
if(typeof typeof2!=='undefined'){
return typeof2(v);
}
return "object";
}
return typeof v;
}
//对于普通js常量和js对象,各浏览器是基本一致的
alert(varType()); //undefined
alert(varType(100)); //number
alert(varType({})); //Object
alert(varType([])); //Array
alert(varType(/ /)); //RegExp
alert(varType(new Date())); //Date
alert(varType(Date)); //function
alert(varType(Object)); //function
alert(varType(RegExp)); //function
//对于DOM对象,各浏览器可能会有不同值
alert(varType(window)); //IE:HTMLWindow2 FF:Window
alert(varType(document)); //IE:HTMLDocument FF:HTMLDocument
alert(varType(document.body)); //IE:HTMLBody FF:HTMLBodyElement
alert(varType(Option)); //IE:Object FF:function
alert(varType(Image)); //IE:Object FF:function
alert(varType(navigator)); //IE:DispHTMLNavigator FF:Navigator
alert(varType(document.getElementsByTagName('DIV')[0]));
相关文章推荐
- jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?
- jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?
- PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
- jQuery事件函数-点击、双击、键盘按键、鼠标滑动、失去焦点、显示哪个 DOM 元素触发了事件/返回事件的类型。等
- 20180301:JavaScript的初步学习,JS的数据类型与变量,函数,DOM操纵HTML,BOM操作浏览器
- 用JS编写一个函数,返回数组中重复出现过的元素(实例)
- 在HTML页面上点击按钮按钮携带参数flag,触发一个JS函数,经过判断是否flag==1,分别跳到两个指定的方法(或者页面)
- jetbrick-webmvc 支持多种方式返回一个JSON (xml, html, js类似)
- 在JS的脚本里,怎么把一个html字符串转成的DOM对象.从而能使用返回的DOM对象来访问某一个节点?
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
- js返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
- js里怎么判断一个对象是否是日期类型,即Date,用typeof返回的是object
- 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子
- 【转】js判断dom元素加载完成
- js在safari浏览器下声明变量时会根据变量名和页面Dom元素id自动初始化为Dom类型
- js如何判断一个值是不是Array类型
- 用js写了一个判断矩形相交的函数
- js 中的类型判断函数 isObject isFunction