判断目标是否是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 相关文章推荐
巧妙破除网页右键禁用的十大绝招
Aug 12 Javascript
jQuery+ajax实现顶一下,踩一下效果
Jul 17 Javascript
跨浏览器的事件对象介绍
Jun 27 Javascript
JS教程:window.location使用方法的区别介绍
Oct 04 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
js实现人才网站职位选择功能的方法
Aug 14 Javascript
轻松实现JavaScript图片切换
Jan 12 Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
微信小程序登录换取token的教程
May 31 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 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数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
简单实现js浮动框
2016/12/13 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
利用Python爬取可用的代理IP
2016/08/18 Python
python实现函数极小值
2019/07/10 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python小项目之五子棋游戏
2019/12/26 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
python轮询机制控制led实例
2020/05/03 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
私有程序集与共享程序集有什么区别
2013/04/05 面试题
最新茶叶店创业计划书
2014/01/14 职场文书
中年人生感言
2014/02/04 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
计算机教师工作总结
2015/08/13 职场文书
教师远程研修感悟
2015/11/18 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python