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; }
需要充分测试
判断目标是否是window,document,和拥有tagName的Element的代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@