Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: названия методов
 
 автор: 1999   (07.01.2006 в 18:24)   письмо автору
 
 

Давно хотел узнать вот о чем
Допустим есть объект object и у него есть лпрежеденное кол-во методов, узнаваемое object.length
Допустим среди них есть метод time
Могу ли я узнать только названия всех методов объекта, а не их значений?
Просто object.time даст значение метода time, а мне надо только название метода
Т.е. например если есть 3 метода up,down,hey то чтобы скрипт выводил

up
down
hey

а не

[object]
[object]
[object]

   
 
 автор: Artem S.   (07.01.2006 в 18:36)   письмо автору
 
   для: 1999   (07.01.2006 в 18:24)
 


if (obj.up) document.write("up");
if (obj.down) document.write("down");
if (obj.hey) document.write("hey");

   
 
 автор: 1999   (07.01.2006 в 18:55)   письмо автору
 
   для: Artem S.   (07.01.2006 в 18:36)
 

нет ну не так же
я не знаю названий методов и мне надо чтобы яваскрипт в циелк for вывел эти названия

   
 
 автор: 1999   (10.01.2006 в 13:45)   письмо автору
 
   для: 1999   (07.01.2006 в 18:55)
 

Неужели никто не знает???

   
 
 автор: Artem S.   (10.01.2006 в 14:16)   письмо автору
 
   для: 1999   (10.01.2006 в 13:45)
 

for (i in obj)
{
document.write(i);
}

   
 
 автор: 1999   (11.01.2006 в 14:24)   письмо автору
 
   для: Artem S.   (10.01.2006 в 14:16)
 

Нет
Так он напишет значения всех методов
А как узнать сами названия???

   
 
 автор: 12345   (11.01.2006 в 15:01)   письмо автору
 
   для: 1999   (11.01.2006 в 14:24)
 

Приведённый код выводит как раз названия (методов и свойств). Чтобы вывести со _значениями_ - пример:
<script>d=document;
for (i in d){d.write(i+' = '+d[i]+'<br>');}
</script>


...результаты этого скрипта ещё интересно сравнить в разных браузерах:
<script>d=document;
onload=function(){for(i in d.body.style){d.all.d1.innerHTML+=(i+' = '+d.body.style[i]+'<br>');}}
</script>
<body><div id=d1></div>

   
 
 автор: 1999   (11.01.2006 в 22:43)   письмо автору
 
   для: 12345   (11.01.2006 в 15:01)
 

Скажите тогда почему у меня виснет браузер при просмотре этой странички?

<html>
<body vlink="#AAAAAA">

<script>
d=document.body; 

for (i in d)
{
  document.write(i+ " = " +d[i]+ "<br>");

</script>

</body>
</html>


И почему если вместо этого цикла поставить цикл while с ограничением итераций, то вообще ничего не выводит?

<html>
<body vlink="#AAAAAA">

<script>
d=document.body; 

j=0;
while ((i in d) && (j<20))
{
  document.write(i+ " = " +d[i]+ "<br>");
  j++;
}

</script>

</body>
</html>

   
 
 автор: 12345   (12.01.2006 в 13:08)   письмо автору
 
   для: 1999   (11.01.2006 в 22:43)
 

1. Потому что в body добавляется каждый раз новый элемент (или больше).. Лучше спросить у разработчиков : )

2. У меня по onload цикл по d.body не виснет и выдаёт порядка 200 элементов (IE, FF). (Зато виснет d.all.)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования