判断目标是否是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 相关文章推荐
IE与FireFox中的childNodes区别
Oct 20 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
js中substring和substr的定义和用法
May 05 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
Jun 09 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
bootstrap table sum总数量统计实现方法
Oct 29 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 Javascript
浅谈js数组splice删除某个元素爬坑
Oct 14 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/08/14 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
微信支付开发维权通知实例
2016/07/12 PHP
php实用代码片段整理
2016/11/12 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
javascript self对象使用详解
2016/10/18 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
Python中正则表达式的详细教程
2015/04/30 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python使用udp实现聊天器功能
2018/12/10 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python变量访问权限控制详解
2019/06/29 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
什么是Python中的顺序表
2020/06/02 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
新东网科技Java笔试题
2012/07/13 面试题
护理学毕业生求职信
2013/11/14 职场文书
家长会标语
2014/06/24 职场文书
小学语文国培研修日志
2015/11/13 职场文书
校长新学期寄语2016
2015/12/04 职场文书
通知怎么写?
2019/04/17 职场文书