Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2011, 19:12
Аспирант
Отправить личное сообщение для jsVAN Посмотреть профиль Найти все сообщения от jsVAN
 
Регистрация: 02.03.2011
Сообщений: 53

скрипт работает в IE через раз
Здравствуйте всем. Помогите новичку, собрал свой скрипт, и он стабильно работает в PSPad editor, зато в IE - при первом открытии в браузере срабатывает, но уже при повторном открытии этого же файла в этом же браузере - нет. Через несколько попыток открыть/закрыть - снова работает. Но так же не может быть: скрипт или работает или нет, без форума мне не разобраться...
Действие: загружаются картинки, при клике мышкой на малой картинке проявляется большая картинка. Вот сам скрипт:
var m = '';
m += '<div style="position : absolute; bottom : 0;">';
m += '<img src="search_tab_3h.gif"                                  id="1"  onclick = "doSomething(this, 258, 286)" style="height : 68px;">&nbsp;';
m += '<img src="search_tab_3h.gif"                                  id="2"  onclick = "doSomething(this, 640, 423)" style="height : 68px;">&nbsp;';
m += '<img src="search_tab_3h.gif"                                  id="4"  onclick = "doSomething(this, 3750, 1200)" style="height : 68px;">&nbsp;';
m += '<\/div><div style="position : absolute; bottom : 90;">';
m += '<img src="bmp.bmp"                                            name = "imgg" id="1a" onclick="doSomething(this)" style="width : 0; height : 0;">';
m += '<img src="17183565f.jpg"                                      name = "imgg" id="2a" onclick="doSomething(this)" style="width : 0; height : 0;">';
m += '<img src="zakat.jpg"                                          name = "imgg" id="4a" onclick="doSomething(this)" style="width : 0; height : 0;">';
m += '<\/div>';
if (document.getElementById) { document.write(m); } var ws; var hs; var nw; var mi = 10;   
if (typeof (window.innerWidth) === 'number') {ws = window.innerWidth; hs = window.innerHeight; } else if (document.documentElement &&(document.documentElement.clientWidth||document.documentElement.clientHeight)) { ws = document.documentElement.clientWidth; hs=document.documentElement.clientHeight; } else if (document.body&&(document.body.clientWidth||document.body.clientHeight)) { ws = document.body.clientWidth; hs=document.body.clientHeight; }
function doSomething(e, w, h) {   
 if (w & h){ 
  if (document.getElementById(e.id+'a').style.width === '0px' || document.getElementById(e.id+'a').style.width === 0) {
   for ( i = 0; i < document.getElementsByName("imgg").length; i++ ) {
    document.getElementsByName("imgg").item(i).style.width = 0;
    document.getElementsByName("imgg").item(i).style.height = 0;
   }  
   di = e.id + 'a';   
   if((ws-mi*2)/(hs-mi*10) < w/h) { nw = ws-mi*2; 
    document.getElementById(di).style.width = nw;
    document.getElementById(di).style.height = Math.round(h*(ws - mi * 2) / w);       
   }else{ nw = Math.round(w * (hs - (mi * 10)) / h);      
    
    if(document.getElementById(di)){
     var ysa = document.getElementById(di);
     if (ysa){      
      ysa.style.height = (hs - mi * 10) ? (hs - mi * 10) : 0;      
      ysa.style.width = nw ? nw : 0;
     }    
    }       
   }
   document.getElementById(di).style.visibility = "visible";   
   document.getElementById(di).style.marginLeft = Math.round((ws - nw)/2)-mi ? Math.round((ws - nw)/2)-mi : 0;
  }else{
   document.getElementById(e.id+'a').style.width = 0;  document.getElementById(e.id+'a').style.height = 0; }      
 }else{ 
  for ( i=0; i<document.getElementsByName("imgg").length;i++ ) {document.getElementsByName("imgg").item(i).style.width=0; document.getElementsByName("imgg").item(i).style.height = 0; }}   
}
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2011, 20:06
Аспирант
Отправить личное сообщение для jsVAN Посмотреть профиль Найти все сообщения от jsVAN
 
Регистрация: 02.03.2011
Сообщений: 53

В Firefox точно не работает,
а в Chrome скрипт работает,
InternetExplorer из 5 одновременно открытых копий 2 работают, 3 нет.
И что же в нём тормозит?
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2011, 03:27
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Из-за кучи getElements'ов в циклах. Пихай результат в переменную, а затем используй.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
скрипт на сайт под Джумлой, не работает в FF matysse Элементы интерфейса 1 11.10.2010 21:14
Регулярка работает через раз. Andrej_2 Общие вопросы Javascript 17 17.05.2009 15:15
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32