Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Не срабатывает java в FireFox. (http://forum.oszone.net/showthread.php?t=242500)

mspuz 12-09-2012 12:51 1987303

Не срабатывает 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(!
dirdir='';
if(!
mm="m";
if(!
ii="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(
!= 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 дня ковыряюсь и ничего не могу понять. В чем может быть проблема?

Busla 12-09-2012 13:17 1987319

И при чём тут java?

Цитата:

Цитата mspuz
В чем может быть проблема? »

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

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

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

mspuz 12-09-2012 15:58 1987413

Обернул - картина прежняя

mspuz 12-09-2012 20:01 1987549

Установил Oper'у - все отлично. Получается только в Firefox боковое меню не раскрывается!!! Но почему???

mspuz 13-09-2012 12:03 1987864

Переписал функцию, избавляясь от 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(!
dirdir='';
if(!
mm="m";
if(!
ii="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(
!= 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.

Время: 17:51.
© OSzone.net 2001-