Показать сообщение отдельно
  #5 (permalink)  
Старый 01.09.2011, 15:13
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Первое что пришло в голову поиграться с nodeType.
function isNode ( node ) {
	var nodeType = node && node.nodeType, isNode = true;
	if ( nodeType !== 1 || nodeType !== 9 ) { return !isNode; }
	try {
		delete node.nodeType;
		isNode = node.nodeType === nodeType;
		node.nodeType = nodeType;
	} catch ( e ) {}
	return isNode;
}

Еще интересным является, то что в IE, у dom элемента отсутствует конструктор
function isNode ( node ) {
	if ( !node ) return false;
	var type = Object.prototype.toString.call( node ).toLowerCase().slice(8,-1);
	return (type == "object" && node.constructor == null && typeof node.nodeType == "number") || (/^html/.test( type ) && !/collection$/.test( type ) || type == "global");
}

Последний раз редактировалось nikita.mmf, 01.09.2011 в 15:32.
Ответить с цитированием