Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Глюк с рисунками в GIF


Автор: Black 9.11.2004, 21:13
Пишу чат со скрытым фреймом который постоянно обновляется, так вот этот фрейм добавляет фразы в слой (<div></div>), также в слой добавляются смайлики, но вот почему то после добавления они перестают двигаться smile) Это почему??? у меня браузер с ума сошел или я что-то не так делаю :-) подскажите кто знает что енто такое за фокус.

Код моего скрипта:
==============
Код


<script language=JavaScript>
function Refresh(){
parent.frames["chat"].document.body.innerHTML = parent.frames ["chat"].document.body.innerHTML + "TEKCT";
}
</script>

===============

Автор: Sardar 10.11.2004, 00:31
Если добавляются в слой, то почему текст вставляешь просто в body ?

"Смайлики останавливаются" - имеешь в виду анимированные .gif останавливаются? Наверное связанно с кривой рамзеткой, браузер просто глючит от этого. Попробуй алертом посмотреть всю разметку, после добавлания сообщения. Запости ее сюда.

Автор: Black 10.11.2004, 01:31
да смайлы перестают двигаться smile
вот получил от алерта:

<div id=chat><font style="color:green"><b><a class=xxx href='javascript:name("[admin]")'>[admin]</a>:</b></font><font style="color:black;font-family:tahoma;font-size:12px;font-weight:bolder"><a href='javascript:img("(-14-)")'><img border=0 src="http://www.name.ru/chat/smiles/s23.gif"></a></font><br>
Добавлено @ 01:35
кстати еще подскажи:
str = str.replace(new RegExp(eng[i],"g"), rus[i]);
выдает ошибку пишет: предполагается наличие "]" в регулярном выражении.
как исправить smile

Автор: Sardar 10.11.2004, 10:29
Ты бы все содержание(body) дал, а то к нему прибавяешь, а изменяется у тебя только слой... или слои один за другим добавляются? Тогда у них не уникальный ID, это не фатально, но и не правильно...

Можно конечно пробежатся по картинкам и обновить им src, они перезапустятся. Но это будет заплатка, проблема где то в другом, у всех же все правильно работает.
Код
for(var i=0, imgs=document.body.getElementsByTagName("IMG"); i<imgs.length; i++)
    imgs[i].src=imgs[i].src;


О регах: у тебя кривые реги в массиве eng, на них регексп и ругается smile Скидывай сюда, перепишем.

Автор: Alx 10.11.2004, 16:09
PHP-DIRECTOR
Код

str = str.replace(new RegExp("eng\\[i\\]","g"), "rus[i]");

Автор: Black 11.11.2004, 10:34
Sardar

Код

for(var i=0, imgs=document.body.getElementsByTagName("IMG"); i<imgs.length; i++)
   imgs[i].src=imgs[i].src;


Этот код исправляет ошибку и позволяет заставить GIF двигаться, однако мне интересно он заставляет браузер полностью перезагрузить картинки т.е. их заново скачать с сервера или просто с кеша??? если с сервера то это будет сильно тормозить....

Автор: Sardar 11.11.2004, 10:44
Естественно картинки бертуся из кеша. Из JS ты это проконтролировать не сможешь, просто это задача браузера брать даные из кеша, если они доступны. ИЕ, Мозилла, Опера ведут себя как надо, пользователи экзотичных убогих бродилок могут поиметь здесь проблему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)