判断目标是否是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 相关文章推荐
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 Javascript
js生成的验证码的实现与技术分析
Sep 17 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
Nov 23 Javascript
DropDownList控件绑定数据源的三种方法
Dec 24 Javascript
js实现自定义进度条效果
Mar 15 Javascript
详解node HTTP请求客户端 - Request
May 05 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Cpy和Python的效率对比
2015/03/20 Python
Python中的choice()方法使用详解
2015/05/15 Python
python中list列表的高级函数
2016/05/17 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python之os操作方法(详解)
2017/06/15 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
请介绍一下Ant
2016/07/22 面试题
2014年大学生党课心得体会范文
2014/03/29 职场文书
手机被没收的检讨书
2014/10/04 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
高中开学感言
2015/08/01 职场文书