判断目标是否是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 相关文章推荐
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
Jan 08 Javascript
捕获键盘事件(且兼容各浏览器)
Jul 03 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
详解JS-- 浮点数运算处理
Nov 28 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
Jan 13 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
Bootstrap4 gulp 配置详解
Jan 06 Javascript
Vue使用zTree插件封装树组件操作示例
Apr 25 Javascript
微信小程序停止其他视频播放当前视频的实例代码
Dec 25 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 jQuery表单,带验证具体实现方法
2014/02/15 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
php实现简单四则运算器
2020/11/29 PHP
新浪的图片新闻效果
2007/01/13 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python requests库用法实例详解
2018/08/14 Python
python print出共轭复数的方法详解
2019/06/25 Python
Python属性和内建属性实例解析
2020/01/14 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
基于Python实现天天酷跑功能
2021/01/06 Python
UNIX文件类型
2013/08/29 面试题
大学学习生活感言
2014/01/18 职场文书
体育教师求职信
2014/05/24 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
护士个人总结范文
2015/02/13 职场文书
财务工作失误检讨书
2015/02/19 职场文书
开学典礼致辞
2015/07/29 职场文书
中考百日冲刺决心书
2015/09/22 职场文书