Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает скрипт для мини-чата ucoz (https://javascript.ru/forum/misc/29487-ne-rabotaet-skript-dlya-mini-chata-ucoz.html)

bona 29.06.2012 21:24

Не работает скрипт для мини-чата ucoz
 
Здравствуйте. У меня есть скрит игры "собачьи бега" для мини-чата ucoz(помогли сделать на одном сайте). Мне понадобилось внести туда изменения- вывести текст не с помощью alert,а с помощью _uwnd.alert,т.к. понадобилось добавить картинку,что невозможно в случае с alert. Однако после этих изменений скрипт перестал работать. Помогите разобраться,пожалуйста. Вот текст скрипта. Проблемные места находятся в функции bega и в строке deathTimer[victim] = setTimeout(function() { bega, timeToDeath) Самое интересное это то,что я пробовала сделать точно такое же _uwnd.alert на странице,созданной в редакторе и там всё работало. Неужели в данном скрипте нельзя это сделать? Если нет,то,пожалуйста,подскажи е другие способы добавить картинку к выводимому тексту.
<script type="text/javascript">
 var deathTimer = new Array(); // Массив таймеров до обгона 
 var lastAnsw = ''; // Последнее сообщение чата 

 // Инициализируем скрипт 
 setInterval(function() { 
 var x = $('#mchatIfm2').contents().find('body'); 

 var answer= $('.cMessage:first',x).text(); // текст сообщения 
 var user=$('a:first',x).text(); // ник юзера 

 duel(user, answer); 
 }, 500); 

 /***** 
 * Бега юзеров 
 ******/
 function bega(){
_uWnd.alert('<div align="center" style="padding:5px;">Обгон зверика '  +  victim  +  ' успешен <br><img src="http://zveriki.ucoz.com/bega/obgon.png"</div>', '',{w:300, tm:5000, h:250});
}     
 function duel(user, answer) { 
 if (lastAnsw == answer) return; // прерываем выполнение функции, т.к. это сообщение уже обрабатывалось 
 if (answer.indexOf('обогнать') > -1) {// user пытается кого-то обогнать
 var victim = answer.replace(/обогнать *([^ ]*).*/, '$1'); // ник жертвы 

 // проводим обработку способов обгона 
 if(answer.indexOf('ускорение') > -1)
 var timeToDeath = 7000; 
 else if(answer.indexOf('кость') > -1) 
 var timeToDeath = 5000; 

 //включаем таймер до обгона 
 if (timeToDeath) 
 deathTimer[victim] = setTimeout(function() { bega, timeToDeath);
 }else{ 
 if (answer.indexOf('вперёд!') > -1 && deathTimer[user]) { // юзер успел пресечь обгон, отключаем таймер 
 clearTimeout(deathTimer[user]); 
 deathTimer[user] = false;  
 } 
 } 
 lastAnsw = answer; 
 } 
 </script>

faforty 01.07.2012 07:16

На строке 34 синтаксическая ошибка
deathTimer[victim] = setTimeout(function() { bega}, timeToDeath);

9xakep 01.07.2012 09:48

Попробуйте так:
var victim = +answer.replace(/обогнать *([^ ]*).*/, '$1'); // ник жертвы


Часовой пояс GMT +3, время: 16:09.