Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 03:12   #1
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
Смех особенности мозилы для document.getElementById

Почему этот код а вернее функция Fly(); не хочет работать только в Мозиле?!?!
Код HTML:
SmallStars = 60;  
LargeStars = 30; 
SmallYpos = new Array(); 
SmallXpos = new Array(); 
LargeYpos = new Array(); 
LargeXpos = new Array(); 
Smallspeed= new Array(); 
Largespeed= new Array(); 
ns=(document.layers)?1:0; 
if (ns) { 
for (i = 0; i < SmallStars; i++) { 
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFF0' CLIP='0,0,1,1' ></LAYER>"); 
} 
for (i = 0; i < LargeStars; i++) { 
document.write("<LAYER NAME='ln"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFFF' CLIP='0,0,2,2'></LAYER>"); 
  } 
} 
else { 
document.write('<div style="position:absolute;top:0px;left:0px;z-index:1;">'); 
document.write('<div style="position:relative">'); 
for (i = 0; i < SmallStars; i++) { 
document.write('<div id="si'+i+'" style="z-index:1;position:absolute;top:0;left:0;width:1px;height:1px;background:#fffff0;font-size:1px"></div>'); 
} 
document.write('</div>'); 
document.write('</div>'); 
document.write('<div style="z-index:1;position:absolute;top:0px;left:0px">'); 
document.write('<div style="z-index:1;position:relative">'); 
for (i = 0; i < LargeStars; i++) { 
document.write('<div id="li'+i+'" style="z-index:1;position:absolute;top:0;left:0;width:2px;height:2px;background:#ffffff;font-size:2px"></div>'); 
} 
document.write('</div>'); 
document.write('</div>'); 
} 
WinHeight = (document.layers)?window.innerHeight-10:window.document.body.clientHeight-10; 
var WinWidth =(document.layers)?window.innerWidth-10:window.document.body.clientWidth-10; 
for (i = 0; i < SmallStars; i++) { 
SmallYpos[i] = Math.round(Math.random() * WinHeight); 
SmallXpos[i] = Math.round(Math.random() * WinWidth); 
Smallspeed[i]= Math.random() * 5 + 1; 
} 
for (i = 0; i < LargeStars; i++) { 
LargeYpos[i] = Math.round(Math.random() * WinHeight); 
LargeXpos[i] = Math.round(Math.random() * WinWidth); 
Largespeed[i] = Math.random() * 10 + 5; 
} 
function fly() { 
var WinHeight =(document.layers)?window.innerHeight-10:window.document.body.clientHeight-10;  
var WinWidth =(document.layers)?window.innerWidth-10:window.document.body.clientWidth-10; 
var hscrll = (document.layers)?window.pageYOffset:document.body.scrollTop; 
var wscrll = (document.layers)?window.pageXOffset:document.body.scrollLeft; 

for (i = 0; i < LargeStars; i++) { 
LargeXpos[i] -= Largespeed[i]; 
if (LargeXpos[i] < -10) { 
LargeXpos[i] = WinWidth; 
LargeYpos[i] = Math.round(Math.random() * WinHeight); 
Largespeed[i] = Math.random() * 3 + 2; 
} 
if (ns) { 
document.layers['ln'+i].left = LargeXpos[i]; 
document.layers['ln'+i].top = LargeYpos[i] + hscrll; 
} 
else { 
var elem = new Object();
elem = document.getElementById('li'+i);
elem.style.pixelLeft = LargeXpos[i]; 
elem.style.pixelTop = LargeYpos[i] + hscrll; 
  } 
} 


for (i = 0; i < SmallStars; i++) { 
SmallXpos[i] -= Smallspeed[i]; 
if (SmallXpos[i] < -10) { 
SmallXpos[i] = WinWidth; 
SmallYpos[i] = Math.round(Math.random()*WinHeight); 
Smallspeed[i] = Math.random() * 2 + 1; 
} 
if (ns) { 
document.layers['sn'+i].left = SmallXpos[i]; 
document.layers['sn'+i].top = SmallYpos[i]+hscrll; 
} 
else { 
var elema = new Object();
elema = document.getElementById('si'+i);
elema.style.pixelLeft = SmallXpos[i]; 
elema.style.pixelTop = SmallYpos[i]+hscrll; 
  }  
} 
setTimeout('fly()', 30); 
}
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Старый 28.04.2010, 13:42   #2
(IICuX)
Пользователь
 
Регистрация: 27.04.2010
Сообщений: 22
По умолчанию

в какой строке ошибка?
(IICuX) вне форума Ответить с цитированием
Старый 28.04.2010, 15:59   #3
Vertexxx
Заблокирован
 
Регистрация: 10.04.2010
Сообщений: 145
По умолчанию

Цитата:
Сообщение от (IICuX) Посмотреть сообщение
в какой строке ошибка?
Полагаешь, JavaScript рассказывает эту тайну?

------------------------

А по теме, кажись тут загвоздка в document.layers. Попробуй избавиться от него.

Последний раз редактировалось Vertexxx; 28.04.2010 в 16:20.
Vertexxx вне форума Ответить с цитированием
Старый 28.04.2010, 18:06   #4
(IICuX)
Пользователь
 
Регистрация: 27.04.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Vertexxx Посмотреть сообщение
Полагаешь, JavaScript рассказывает эту тайну?

------------------------

А по теме, кажись тут загвоздка в document.layers. Попробуй избавиться от него.
Открываешь ИЕ загружаешь страничку, в левом нижнем углу есть треугольник желтый, если есть ошибка в скрипте, смотришь где ошибка, почти аналогично и в мозилле
(IICuX) вне форума Ответить с цитированием
Старый 29.04.2010, 22:45   #5
Wi1D
Кибернетик
Форумчанин
 
Аватар для Wi1D
 
Регистрация: 22.10.2008
Сообщений: 142
Печаль если сделать так.

Код:
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin  
SmallStars = 60;  
LargeStars = 30; 
SmallYpos = new Array(); 
SmallXpos = new Array(); 
LargeYpos = new Array(); 
LargeXpos = new Array(); 
Smallspeed= new Array(); 
Largespeed= new Array(); 
ns=(document.layers)?1:0; 
if (ns) { 
for (i = 0; i < SmallStars; i++) { 
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFF0' CLIP='0,0,1,1' ></LAYER>"); 
} 
for (i = 0; i < LargeStars; i++) { 
document.write("<LAYER NAME='ln"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFFF' CLIP='0,0,2,2'></LAYER>"); 
  } 
} 
else { 
document.write('<div style="position:absolute;top:0px;left:0px;z-index:1;">'); 
document.write('<div style="position:relative">'); 
for (i = 0; i < SmallStars; i++) { 
document.write('<div id="si" style="z-index:1;position:absolute;top:0;left:0;width:1px;height:1px;background:#fffff0;font-size:1px"></div>'); 
} 
document.write('</div>'); 
document.write('</div>'); 
document.write('<div style="z-index:1;position:absolute;top:0px;left:0px">'); 
document.write('<div style="z-index:1;position:relative">'); 
for (i = 0; i < LargeStars; i++) { 
document.write('<div id="li" style="z-index:1;position:absolute;top:0;left:0;width:2px;height:2px;background:#ffffff;font-size:2px"></div>'); 
} 
document.write('</div>'); 
document.write('</div>'); 
} 
WinHeight = (document.layers)?window.innerHeight-10:window.document.body.clientHeight-10; 
var WinWidth =(document.layers)?window.innerWidth-10:window.document.body.clientWidth-10; 
for (i = 0; i < SmallStars; i++) { 
SmallYpos[i] = Math.round(Math.random() * WinHeight); 
SmallXpos[i] = Math.round(Math.random() * WinWidth); 
Smallspeed[i]= Math.random() * 5 + 1; 
} 
for (i = 0; i < LargeStars; i++) { 
LargeYpos[i] = Math.round(Math.random() * WinHeight); 
LargeXpos[i] = Math.round(Math.random() * WinWidth); 
Largespeed[i] = Math.random() * 10 + 5; 
} 
function fly() { 
var WinHeight =(document.layers)?window.innerHeight-10:window.document.body.clientHeight-10;  
var WinWidth =(document.layers)?window.innerWidth-10:window.document.body.clientWidth-10; 
var hscrll = (document.layers)?window.pageYOffset:document.body.scrollTop; 
var wscrll = (document.layers)?window.pageXOffset:document.body.scrollLeft; 
for (i = 0; i < LargeStars; i++) { 
LargeXpos[i] -= Largespeed[i]; 
if (LargeXpos[i] < -10) { 
LargeXpos[i] = WinWidth; 
LargeYpos[i] = Math.round(Math.random() * WinHeight); 
Largespeed[i] = Math.random() * 3 + 2; 
} 
if (ns) { 
document.layers['ln'+i].left = LargeXpos[i]; 
document.layers['ln'+i].top = LargeYpos[i] + hscrll; 
} 
else { 
li[i].style.pixelLeft = LargeXpos[i]; 
li[i].style.pixelTop = LargeYpos[i] + hscrll; 
  } 
} 
for (i = 0; i < SmallStars; i++) { 
SmallXpos[i] -= Smallspeed[i]; 
if (SmallXpos[i] < -10) { 
SmallXpos[i] = WinWidth; 
SmallYpos[i] = Math.round(Math.random()*WinHeight); 
Smallspeed[i] = Math.random() * 2 + 1; 
} 
if (ns) { 
document.layers['sn'+i].left = SmallXpos[i]; 
document.layers['sn'+i].top = SmallYpos[i]+hscrll; 
} 
else { 
si[i].style.pixelLeft = SmallXpos[i]; 
si[i].style.pixelTop = SmallYpos[i]+hscrll; 
  }  
} 
setTimeout('fly()', 30); 
} 
// End --> 
</script>
тогда в мазиле выдает следующее:

Предупреждение: Элемент доступен по идентификатору/имени в глобальной области видимости. Используйте вместо этого соответствующий стандарту W3C метод document.getElementById().
Строка: 75

Ошибка: li[i] is undefined
Строка: 75


а если делать так как я написал в первом посте..тоесть через
Код:
var elema = new Object();
elema = document.getElementById('si'+i);
тогда мазила создает эти точки..тоесть их видно в самом оевом углу сверху...но он их НЕ двигает НИКАК!
не существует идеальных программ...и людей тоже..
<== P.S. если я тебе помог нажми весы слева <==
Wi1D вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Особенности document.write() Vitalyk JavaScript, Ajax 8 14.02.2010 22:41
Перенести профиль мозилы на другой комп dr.Chas Свободное общение 7 12.02.2010 20:54
Что делает данный JS (там есть такие ф-ии как getElementsByTagName и getElementById) TwiX JavaScript, Ajax 5 05.02.2010 19:49
Особенности SSL OCTAGRAM Свободное общение 2 01.01.2010 16:42
JavaScript. Проблема с GetElementById kirill555 Помощь студентам 1 14.02.2008 12:30