判断目标是否是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让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
全面了解js中的script标签
Jul 04 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
JavaScript中递归实现的方法及其区别
Sep 12 Javascript
vue父组件向子组件(props)传递数据的方法
Jan 02 Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
浅谈layui 表单元素的选中问题
Oct 25 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 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基础知识:类与对象(1)
2006/12/13 PHP
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Django 导出 Excel 代码的实例详解
2017/08/11 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
python制作抖音代码舞
2019/04/07 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
django的model操作汇整详解
2019/07/26 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
电力公司个人求职信范文
2014/02/04 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
考试没考好检讨书
2015/05/06 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python