Javascript

Все, связанное с web-строительством.

Модератор: [mweb team]

Javascript

Сообщение Padonak Сб сен 25, 2010 13:09

дада снова это сладкое слово друзья!
итак. пишу User Script. поэтому к редактированию сорцов никакого доступа не имееца и происходит манипулирование лишь тем что дает страница. возникла необходимость добавки некоторых действий в существующую уже на странице функцию(и возможно не в одну). там такая фигня - летит флот куда-нибудь и на странице отображается таймер сколько осталось времени ему лететь. таких таймеров может быть много - от 1 до 15 или даже больше. каждый таймер прописан в странице своей собственной отдельной функцией. вот пример такого таймера:
Код: Выделить всё
<tr class="flight">
   <script type="text/javascript">
function tfs1() {
v = new Date();
var bxxfs1 = document.getElementById('bxxfs1');
n = new Date();
ssfs1 = ppfs1;
ssfs1 = ssfs1 - Math.round((n.getTime() - v.getTime()) / 1000.);
mfs1 = 0;
hfs1 = 0;
if (ssfs1 < 0) {
   bxxfs1.innerHTML = "-";
} else {
   if (ssfs1 > 59) {
      mfs1 = Math.floor(ssfs1 / 60);
      ssfs1 = ssfs1 - mfs1 * 60;
   }
   if (mfs1 > 59) {
      hfs1 = Math.floor(mfs1 / 60);
      mfs1 = mfs1 - hfs1 * 60;
   }
   if (ssfs1 < 10) {
      ssfs1 = "0" + ssfs1;
   }
   if (mfs1 < 10) {
      mfs1 = "0" + mfs1;
   }
   bxxfs1.innerHTML = hfs1 + ":" + mfs1 + ":" + ssfs1;
}
ppfs1 = ppfs1 - 1;
window.setTimeout("tfs1();", 999);
}
</script>

   <th>
      <div id="bxxfs1" class="z">-</div>
      <font color="lime">12:59:41</font>
   </th>


другие таймеры если они есть будут выглядеть точно так же с той лишь разницей что имя ф-ции будет отличаться цифрой (tfs2(),tfs3(),tfs4() и т.д.) и так же будут отличаться дивы куда оно пишет время(bxxfs2,bxxfs3,bxxfs4 и т.д.).

у меня есть необходимость совершить вывод определенной инфы в тот момент когда каждый таймер дойдет до нуля и покажет в диве "-".

сам вопрос мой состоит в следующем. существует ли способ обхода циклом всех джаваскрипт-функций в документе (типакаг перебор коллекции document.functions или что-то в таком роде)? я представляю себе это так: цикл обходит все ф-ции и если в имени ф-ции находит определенный сабстринг(в данном случае это будет if(funcname.indexOf('tfs')) != -1) то происходит оверрайт данной ф-ции а если нет то продолжает просто перебор.

атаки на некоторых юзеров этого форума посрецтвом аськи дали лишь частичный результат(за что естественно большой им респект) но это касалось оверрайтинга. так что мислости просим камрады! не стесняемя высказываем свои соображения. флуд в виде сисег тоже приветствуеца но желательно что-то и по делу.
neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону

Re: Javascript

Сообщение Padonak Вс сен 26, 2010 12:04

уважаемыйе девианты! хватит бухать! тема по-прежнему актуальна -12-
neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону

Re: Javascript

Сообщение Jedi Пн сен 27, 2010 3:50

я хз
Изображение
Аватара пользователя
Jedi
Хронический Астматик
 
Сообщения: 1849
Зарегистрирован: Вс сен 08, 2002 1:01
Откуда: Russia

Re: Javascript

Сообщение skreets Пн сен 27, 2010 11:04

я тоже...
Водка не что! Плюшки ВСЕ!!! ГАШИШЬ - не дай печени aхуеть!!!
Аватара пользователя
skreets
Курильщик
 
Сообщения: 308
Зарегистрирован: Вс мар 16, 2003 2:01
Откуда: Москва/Россия

Re: Javascript

Сообщение Muerto Пн сен 27, 2010 13:31

В принципе, я тебе уже отписался в аську. Методом гавнокода можно решить примерно так:
Код: Выделить всё
function message(i)
{
try
  {
  tfs = tfs + i + '(bxxfs'+i + ', 0)';
eval(tfs);
  }
catch(err)
  {
  return false;
  }
finally {
if (err) {return false;} else {message(i+1);}
     }
}

Не ручаюсь, что код работает и работает так как нужно.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3594
Зарегистрирован: Пн окт 11, 2004 20:09
Откуда: Москва

Re: Javascript

Сообщение Muerto Пн сен 27, 2010 13:58

Накрайняк можно разместить все функции в отдельные блоки и обращаться через массив document.getElementsByTagName("script") к ним.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3594
Зарегистрирован: Пн окт 11, 2004 20:09
Откуда: Москва

Re: Javascript

Сообщение Padonak Пн сен 27, 2010 14:34

мне вот что еще не до конца ясно. если я делаю оверрайт функции то она некоторым образом изменяется. но все эти таймеры уже запущены т.е. функции работают к тому моменту когда я начну делать оверрайт т.к. Юзер Скрипт срабатывает после загрузки. то что они запущены не помешает оверрайту?
neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону

Re: Javascript

Сообщение Muerto Пн сен 27, 2010 16:06

Ух, блин... Ну ты, барин, и вопросы задаешь... Пошукай на http://javascript.ru/tutorial/events/timing
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3594
Зарегистрирован: Пн окт 11, 2004 20:09
Откуда: Москва

Re: Javascript

Сообщение Padonak Пн сен 27, 2010 16:57

а кто виноват што я в такие дебри ваще забрался? кто мне тут все время подсказывал? из-за кого мне джаваскрипт нравица? а??? Изображение вот теперь и расхлебывай -12-
neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону

Re: Javascript

Сообщение Padonak Пн окт 25, 2010 22:03

вобщем написал-таки я оверрайт с добавкой всякой прикольной фигни с джикваерей. вот функцейа:

Код: Выделить всё
function overviewTimersOverwrite(){
var divs=document.getElementsByTagName('DIV'),timers=[];
for(var i=0;i<divs.length;i++){
if((divs[i].id)&&(divs[i].id.indexOf('bxx')!=-1)){var suffix=divs[i].id.substring(3,divs[i].id.length),temparr=[divs[i].id,suffix];
timers.push(temparr);}
else{continue;}
}
if(timers.length>0){
for(var f=0;f<timers.length;f++){
var nax=eval('t'+timers[f][1]);
// этот eval идет в одну строку я просто для удобства восприятия разбил на строки
eval('t'+timers[f][1]+'=function(){
v=new Date();
var divv=document.getElementById("'+timers[f][0]+'");
n=new Date();
ssfs2=pp'+timers[f][1]+';
ssfs2=ssfs2-Math.round((n.getTime()-v.getTime())/1000.);
mfs2=0;
hfs2=0;
if(ssfs2<0){divv.innerHTML="-";
var $tr=$("#'+timers[f][0]+'").parent().parent();
$tr.children().fadeTo(3500,0.3);
$("#'+timers[f][0]+'").parent().html("<img src=\'http://padonak.lv/_paskuda/ogame/orange_check.png\' alt=\'выполнено\' onmouseover=\'$(this).parent().siblings().fadeTo(500,1);\' onmouseout=\'$(this).parent().siblings().fadeTo(1000,0.3);\' onclick=\'$(this).parent().parent().remove();\' style=\'cursor:pointer\' \/>");
return;
}
else{
if(ssfs2>59){mfs2=Math.floor(ssfs2/60); ssfs2=ssfs2-mfs2*60;if(mfs2>59){hfs2=Math.floor(mfs2/60);mfs2=mfs2-hfs2*60;}if(ssfs2<10){ssfs2="0"+ssfs2;}
if(mfs2<10){mfs2="0"+mfs2;}
divv.innerHTML=hfs2+":"+mfs2+":"+ssfs2;
}
pp'+timers[f][1]+'=pp'+timers[f][1]+'-1;
window.setTimeout("t'+timers[f][1]+'()",999);}');
}
}
else{return;}
}


а вот как оно выглядит в работе:

neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону

Re: Javascript

Сообщение Muerto Вт окт 26, 2010 9:19

ogame?
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3594
Зарегистрирован: Пн окт 11, 2004 20:09
Откуда: Москва

Re: Javascript

Сообщение Padonak Вт окт 26, 2010 23:21

Muerto писал(а):ogame?


почти -03- http://xgame.net.ua/uni4/ то же самое что огейм
neno jiwi ni jeraha la moyo
~~~
Изображение
Аватара пользователя
Padonak
Табачный магнат
 
Сообщения: 3850
Зарегистрирован: Вт дек 13, 2005 4:23
Откуда: Ростов-на-Дону


Вернуться в Web-мастеринг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron