判断目标是否是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 相关文章推荐
关于图片验证码设计的思考
Jan 29 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
Nov 20 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
BootStrap 弹出层代码
Feb 09 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
Aug 27 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 Javascript
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
vxe-table vue table 表格组件功能
2019/05/26 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
python 文件与目录操作
2008/12/24 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python在图片中添加文字的两种方法
2017/04/29 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python3爬取数据至mysql的方法
2018/06/26 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
python time.strptime格式化实例详解
2021/02/03 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
保险专业大学生职业规划书
2014/03/03 职场文书
房屋认购协议书
2015/01/29 职场文书
大学学生会辞职信
2015/05/13 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书