Трабл с JavaScript

Статус
В этой теме нельзя размещать новые ответы.

terkin

Мой дом здесь!
Регистрация
9 Дек 2006
Сообщения
513
Реакции
200
На странице имеется раскрывающееся меню которое реализовано при помощи такого JS
Код:
<script language="JavaScript"><!--
function JS(menu,image) {//
   nameDiv=eval("document.getElementById(menu)");
   myimage=eval("document.getElementById(image)");
   if(nameDiv.style.display=='none')
   {
   nameDiv.style.display='block';
   myimage.src='img/minus.gif';
   myimage.title='Свернуть'
   }
   else
   {
   nameDiv.style.display='none';
   myimage.src='img/plus.gif';
   myimage.title='Развернуть'
   }
}
//-->
</script>

В теге <body onLoad="JS('menu1','image1');"> я запускаю его на выполнение что бы при загрузке страницы меню автоматически расскрывалось, всё работает но есть такие грабли что скрипт запускается только после того как подзагрузятся все рисунки на странице, а мне нужно что бы это происходило как можно быстрее.
 
как насчет прелоадера:
Код:
// Вставить в хеаде документа
myImage1 = new image();
myImage1.src = 'img/minus.gif'
myImage2 = new image();
myImage2.src = 'img/plus.gif'

--
У меня тут возник вопрос, очевидно я в чем-то не шарю. Зачем использовать евал:
myimage=eval("document.getElementById(image)"); :eek:
когда myimage = document.getElementById(image);
тоже отлично сработает
 
как насчет прелоадера:
Код:
// Вставить в хеаде документа
myImage1 = new image();
myImage1.src = 'img/minus.gif'
myImage2 = new image();
myImage2.src = 'img/plus.gif'

--
У меня тут возник вопрос, очевидно я в чем-то не шарю. Зачем использовать евал:
myimage=eval("document.getElementById(image)"); :eek:
когда myimage = document.getElementById(image);
тоже отлично сработает


eval действительно не обязателен а вот прелоадер тут мне не поможет так как на странице довольно много изображений, не хочеться все их прелоадить, просто нужно как то добиться что бы сразу выполнялся скрипт а потом уже ишла подзагрузка изображений
 
Или аплоадить картинки заранее (самый нормальный вариант) или делать в скрипте паузу (всеравно будет по-дурацки)
 
Аплоадить заранее тоже не вариант в том случае если у меня довольно много счётчиков из за них собственно и возникают тормоза :(
 
тогда бомби счетчики:) а лучше сделай еще сайтик (по тематике данного) и открывай его автоматом в pop-up окне. Ну и разгрузишь всю рекламу уже на 2 сайта.
 
Та просто я вот в инете видел пару статей о том как можно преостанавливать загрузку изображений с помощью JS, ну там для каждого браузера свой код, и что то у меня толком ничего не вышло, всеравно мне кажется что должен быть выход нормальный из ситуации
 
Сообственно я уже запутался, в чем же проблема? Скрипт всегда начинает выполнятся, когда до него дойдет рендер из браузера. Не важно грузятся при этом картинки или нет. Это параллельные явления.
 
Сообственно я уже запутался, в чем же проблема? Скрипт всегда начинает выполнятся, когда до него дойдет рендер из браузера. Не важно грузятся при этом картинки или нет. Это параллельные явления.

Ну вот рендер до него доходит в последнюю очерендь - после того как будут загружены все картинки, а мне нужно что бы он выполнялся до их загрузки
 
Могу предложить еще один вариант.
Вставь обе картинки в блок, одну сделай display:none; а другую display:block

К примеру, их id=myimg1 и id=myimg2

тогда и код подправь:
Код:
if(nameDiv.style.display=='none')
{
   nameDiv.style.display='block';
   myimg1.style.display='block';
   myimg2.style.display='none';
}
else
{
   nameDiv.style.display='none';
   myimg1.style.display='none';
   myimg2.style.display='block';
}
загрузятся они обе, а отображаться будет только одна
единственное, что все-равно придется подгружать их. а иначе никак.
или заранее, или так как у тебя
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху