判断目标是否是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 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
默认让页面的第一个控件选中的javascript代码
Dec 26 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
js阻止移动端页面滚动的两种方法
Jan 25 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
May 18 Javascript
vue element-ui之怎么封装一个自己的组件的详解
May 20 Javascript
JS实现在线ps功能详解
Jul 31 Javascript
vue项目创建步骤及路由router
Jan 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去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
深入php中var_dump方法的使用详解
2013/06/24 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
jquery等待效果示例
2014/05/01 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
关于逃课的检讨书
2014/01/23 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
卖房协议书
2014/04/11 职场文书
青安岗事迹材料
2014/05/14 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书