复制代码 代码如下: 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 传统事件模型构造的事件监听器实现代码
代码如下: 复制代码 代码如下: var br={}; br.eventRouter = {}; br.eventRouter.addListen = function(el,eventType,func){ if(!el.eventObjs){ el.eventObjs = {}; } if(!el.eventObjs[eventType]){ el.eventOb>>>详细阅读
本文标题:判断目标是否是window,document,和拥有tagName的Element的代码
地址:http://www.17bianji.com/kaifa2/JS/26283.html
1/2 1