Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.08.2008, 13:46
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

ZoNT, можно извратиться для фрэймов
function isArray(o) {
  return typeof o.toSource == 'function' && eval(o.toSource()) instanceof Array;
}


З.Ы. Правда toSource только в Gecko работает

Последний раз редактировалось Kolyaj, 29.08.2008 в 13:50.
Ответить с цитированием
  #12 (permalink)  
Старый 29.08.2008, 13:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А вообще, если сильно надо, то в каждом фрэйме написать
Array.prototype._itIsArray = true;

тогда
function isArray(o) {
  return !!o._itIsArray;
}
Ответить с цитированием
  #13 (permalink)  
Старый 29.08.2008, 14:04
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

это тоже верное решение, но только если это ты создал фрейм и это не модуль какой-нибудь сторонний...
Ответить с цитированием
  #14 (permalink)  
Старый 29.08.2008, 14:16
Аватар для scuter
Профессор
Отправить личное сообщение для scuter Посмотреть профиль Найти все сообщения от scuter
 
Регистрация: 14.03.2008
Сообщений: 169

вроди такое дело может помоч,
провда не знаю на сколько грамотное это решение.
function isArray(o)
{
	if(o.length || (o instanceof Array))
	{
		return true;
	}
	else
	{
		return false;
	}
}

но всегда есть какое то но.
Ответить с цитированием
  #15 (permalink)  
Старый 29.08.2008, 14:18
Интересующийся
Отправить личное сообщение для vandy Посмотреть профиль Найти все сообщения от vandy
 
Регистрация: 24.03.2008
Сообщений: 27

Когда мне понадобилось определять тип данных из другого фрейма, то была изобретена функция
function getType(obj) {
   var type = typeof(obj);
   if (type == 'object') {
     if (obj) {
       if(!obj.nodeType) {
         type = (obj.window && obj == obj.window);
         if (!type) {
           type = Object.prototype.toString.apply(obj);
           type = type.substring(8,type.length-1);
         } else type = 'window';
       } else type = obj.nodeName;
     } else type = 'null';
   }
   return type.toLowerCase();
 }


Тогда это долго обсуждалось на форуме xpoint.ru.
Ответить с цитированием
  #16 (permalink)  
Старый 29.08.2008, 14:22
Интересующийся
Отправить личное сообщение для vandy Посмотреть профиль Найти все сообщения от vandy
 
Регистрация: 24.03.2008
Сообщений: 27

Вот нашел ссылку на обсуждение
http://xpoint.ru/forums/programming/...ad/41143.xhtml
Ответить с цитированием
  #17 (permalink)  
Старый 29.08.2008, 15:24
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Хороший пример
Ответить с цитированием
  #18 (permalink)  
Старый 29.08.2008, 15:34
Интересующийся
Отправить личное сообщение для vandy Посмотреть профиль Найти все сообщения от vandy
 
Регистрация: 24.03.2008
Сообщений: 27

Плохих не держим
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск