-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Не срабатывает java в FireFox.
Доброго всем дня. Есть сайт - megabitcomp.ru. Данный сайт очень криво отображался в IE и на одном из форумов посоветовали добавить:
HTML код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
После этого действительно все стало хорошо, кроме одного. Боковое меню должно раскрываться при нажатии на него.
И оно раскрывается, но только не в FireFox (Chrom и IE нормально). Данная функция находится прямо в html:
PHP код:
<script>
function pressbutt(subm,num,dir,i,m){
if(document.getElementById("cat"+subm)){
var IdStyle = document.getElementById("cat"+subm);
if(IdStyle.className == 'catalog_forma') IdStyle.className='catalog_forma_open';
else IdStyle.className='catalog_forma';
}
if(!dir) dir='';
if(!m) m="m";
if(!i) i="i";
var SUBMENU = document.all[m+subm].style;
var IMG=dir+'/images/shop/arr2.gif';
var IMG2=dir+'/images/shop/arr3.gif';
if (SUBMENU.visibility=='hidden'){
SUBMENU.visibility = 'visible';
SUBMENU.position = 'relative';
if(document.all[i+subm]) document.all[i+subm].src=IMG2;
}
else{
SUBMENU.visibility = 'hidden';
SUBMENU.position = 'absolute';
if(document.all[i+subm]) document.all[i+subm].src=IMG;
}
for(j=0;i<num;j++)
if(j != subm)
if(document.all[m+j]){
document.all[m+j].style.visibility = 'hidden';
document.all[m+j].style.position = 'absolute';
if(document.all[j+subm]) document.all[i+j].src=IMG;
}}
</script>
Как только убираю строку:
HTML код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
все начинает работать. Уже 2 дня ковыряюсь и ничего не могу понять. В чем может быть проблема?
|
И при чём тут java?
Цитата:
Цитата mspuz
В чем может быть проблема? »
|
В отсутствии базовых представлений о языках разметки.
Скрипты - это #PCDATA, соответственно, код скрипта нужно обернуть в <![CDATA[
Отдайте сайт на обслуживание web-студии или опытному фрилансеру.
|
Обернул - картина прежняя
|
Установил Oper'у - все отлично. Получается только в Firefox боковое меню не раскрывается!!! Но почему???
|
Переписал функцию, избавляясь от document.all:
PHP код:
<script> // <![CDATA[ function pressbutt(subm,num,dir,i,m){
if(document.getElementById("cat"+subm)){ var IdStyle = document.getElementById("cat"+subm); if(IdStyle.className == 'catalog_forma') IdStyle.className='catalog_forma_open'; else IdStyle.className='catalog_forma'; }
if(!dir) dir=''; if(!m) m="m"; if(!i) i="i"; var SUBMENU = document.getElementsByTagName("div")[m+subm].style;
if (SUBMENU.visibility=='hidden') { SUBMENU.visibility = 'visible'; SUBMENU.position = 'relative'; } else { SUBMENU.visibility = 'hidden'; SUBMENU.position = 'absolute'; } for(j=0;i<num;j++) if(j != subm) if(document.all[m+j]){ document.getElementById("catalog_forma").getElementsByTagName("div")[m+j].style.visibility="hidden"; document.getElementById("catalog_forma").getElementsByTagName("div")[m+j].style.position = 'absolute'; } } // ]]> </script>
Все заработало. Правда остался последний document.all[m+j] - не знаю, на что его заменить.
|
Время: 17:51.
© OSzone.net 2001-