判断目标是否是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 渐变下拉菜单
Dec 15 Javascript
jquery 注意事项与常用语法小结
Jun 07 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
JavaScript中String.match()方法的使用详解
Jun 06 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 Javascript
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
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中如何调用webservice的实例参考
2013/04/25 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
模拟select的代码
2011/10/19 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
javascript随机变色实例代码
2019/10/15 Javascript
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Django models.py应用实现过程详解
2019/07/29 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
浅析Python __name__ 是什么
2020/07/07 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
单位婚育证明范本
2014/11/21 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript