判断目标是否是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 脚本的加载与执行
Apr 19 Javascript
jQuery.extend 函数的详细用法
Jun 27 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
jQuery淡入淡出元素让其效果更为生动
Sep 01 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
浅谈javascript中的instanceof和typeof
Feb 27 Javascript
Javascript递归打印Document层次关系实例分析
May 15 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
js数组方法reduce经典用法代码分享
Jan 07 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
微信小程序自定义底部导航带跳转功能
Nov 27 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实现Mysql读写分离
2013/06/28 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
浅谈php://filter的妙用
2019/03/05 PHP
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
微信小程序实现留言板
2018/10/31 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
python dataframe astype 字段类型转换方法
2018/04/11 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
vue常用指令代码实例总结
2020/03/16 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
董事长助理岗位职责
2014/02/18 职场文书
绩效管理实施方案
2014/03/19 职场文书
普宁寺导游词
2015/02/04 职场文书
体检通知范文
2015/04/21 职场文书
生产现场禁烟通知
2015/04/23 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
四十年同学聚会致辞
2015/07/28 职场文书