判断目标是否是window,document,和拥有tagName的Element的代码


Posted in Javascript onMay 31, 2010
function isWindow( obj ) 
{ 
if( typeof obj.closed == 'undefined' ) return false; 
var result = /\[object (window|global)\]/i.test( Object.prototype.toString.call( obj ) ); 
if( result )return result; 
try{ 
obj.closed = obj.closed; 
return false; 
}catch(e) 
{ 
result = true; 
} 
return result; 
} 
function isDocument( obj ) 
{ 
if( typeof obj.body == 'undefined' ) return false; 
var b = obj.body; 
try{ 
obj.body = null; 
obj.body = b; 
return false; 
}catch(e) 
{ 
return true; 
} 
} 
function isElement( o ) 
{ 
var tn = 'tagName',temp = o[tn],result; 
if( typeof temp == 'undefined' )return false; 
try{ 
o[tn] = null; 
result = ( temp == o[tn] ); 
o[tn] = temp; 
return result; 
}catch(e) 
{ 
return true; 
} 
} function getOwnerWindow( node ) 
{ 
if( isWindow( node ) )return node; 
var doc = isDocument( node ) ? node : node.ownerDocument; 
return doc.view || doc.parentWindiw || doc.defaultView; 
}

需要充分测试
Javascript 相关文章推荐
JavaScript 动态创建VML的方法
Oct 14 Javascript
JavaScript 三种创建对象的方法
Oct 16 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
js 自动播放的实例代码
Nov 19 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
在JavaScript中使用JSON数据
Feb 15 Javascript
简单实现js放大镜效果
Jul 24 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
解决vue-router 二级导航默认选中某一选项的问题
Nov 01 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 Javascript
js 数组的for循环到底应该怎么写?
May 31 #Javascript
javascript 四则运算精度修正函数代码
May 31 #Javascript
ASP 过滤数组重复数据函数(加强版)
May 31 #Javascript
javascript 子窗体父窗体相互传值方法
May 31 #Javascript
js post方式传递提交的实现代码
May 31 #Javascript
JS 类型转换常见方法小结
May 31 #Javascript
javascript 传统事件模型构造的事件监听器实现代码
May 31 #Javascript
You might like
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
Python3基础之函数用法
2014/08/13 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python 画出来六维图
2019/07/26 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
通过实例解析Python调用json模块
2019/12/11 Python
python几种常用功能实现代码实例
2019/12/25 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
校园新闻广播稿
2014/01/10 职场文书
会议通知范文
2015/04/15 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
高三生物教学反思
2016/02/22 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL