Войти

Показать полную графическую версию : Не срабатывает java в FireFox.


mspuz
12-09-2012, 12:51
Доброго всем дня. Есть сайт - megabitcomp.ru. Данный сайт очень криво отображался в IE и на одном из форумов посоветовали добавить:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

После этого действительно все стало хорошо, кроме одного. Боковое меню должно раскрываться при нажатии на него.
И оно раскрывается, но только не в FireFox (Chrom и IE нормально). Данная функция находится прямо в html:

<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>

Как только убираю строку:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

все начинает работать. Уже 2 дня ковыряюсь и ничего не могу понять. В чем может быть проблема?

Busla
12-09-2012, 13:17
И при чём тут java?

В чем может быть проблема? »
В отсутствии базовых представлений о языках разметки.

Скрипты - это #PCDATA, соответственно, код скрипта нужно обернуть в <![CDATA[

Отдайте сайт на обслуживание web-студии или опытному фрилансеру.

mspuz
12-09-2012, 15:58
Обернул - картина прежняя

mspuz
12-09-2012, 20:01
Установил Oper'у - все отлично. Получается только в Firefox боковое меню не раскрывается!!! Но почему???

mspuz
13-09-2012, 12:03
Переписал функцию, избавляясь от document.all:

<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] - не знаю, на что его заменить.




© OSzone.net 2001-2012