Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Menu Tree Firefox


Gnomo

Pergunta

e aí galera..

tenho esse codigo em JS que faz um menu tree.. exemplo:

--Menu1

----SubMenu

--Menu2

----SubMenu

Só que ele esta dando erro no firefox.. no IE ele funciona normalmente, já no firefox da erro na linha 40, 47 e 54.

Linha 40:

document.onmouseover = function() {

var eSrc = window.event.srcElement;

if (eSrc.className == "it") {

eSrc.className = "id";

}

}

Erro:window.event has no properties

Linha 47:

document.onmouseout = function() {

var eSrc = window.event.srcElement;

if (eSrc.className == "id") {

window.event.srcElement.className = "it";

}

}

Erro:window.event has no properties

Linha 54:

document.onclick = function() {

var eSrc = window.event.srcElement;

if (eSrc.className == "it" || eSrc.className == "id") {

window.event.srcElement.className = "ie";

if(ultObj != null) ultObj.className = "it";

ultObj = window.event.srcElement;

sMostrar(ultObj.id.substring(1,ultObj.id.length-1));

}

else if(eSrc.className == "ii") {

if(eSrc.src.substring(eSrc.src.length - iNl.length, eSrc.src.length) != iNl){

objid = document.all(eSrc.id.substring(0,eSrc.id.length-1));

if(objid.style.display == '') {

objid.style.display='none';

eSrc.src = iFc;

} else if (objid.style.display == 'none') {

objid.style.display='block';

eSrc.src = iAb;

} else {

objid.style.display='none';

eSrc.src = iFc;

}

}

}

}

Erro:window.event has no properties

Codigo completo:

var ultObj, secAtual;
var iAb = "img/fold-ab.gif";
var iFc = "img/fold-fc.gif";
var iNl = "img/fold-nl.gif";

function Lista() {
    for(i = 0; i < document.all.length; i++) {
        if(document.all(i).tagName == 'IMG'){
            document.all(i).src = 'img/fold-' + document.all(i).src.substr(document.all(i).src.lastIndexOf('/')+1,2) + '.gif';
            document.all(i).className = 'ii';
        } else if(document.all(i).tagName == 'SPAN'){
            document.all(i).className = 'it';
        } else if(document.all(i).tagName == 'DIV'){
            document.all(i).style.display='none';
            document.all(i).className = 'is';
        }
    }
    m1.style.display='block';
    m1i.src = iAb;
    m1l.className = "ie";
    ultObj = m1l;
    sMostrar(1);
}

window.onload = function() {  Lista(); }

document.onselectstart = function() {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
    return false;
}

function sMostrar(codsec) {
    if(codsec != secAtual)
        top.admin.corpo.document.location = 'ConteudoCorpo.asp?cat=' + codsec;
    secAtual = codsec;
}

document.onmouseover = function() {
    var eSrc = window.event.srcElement;
    if (eSrc.className == "it") {
        eSrc.className = "id";
    }
}

document.onmouseout = function() {
    var eSrc = window.event.srcElement;
    if (eSrc.className == "id") {
        window.event.srcElement.className = "it";
    }
}

document.onclick = function() {
    var eSrc = window.event.srcElement;
    if (eSrc.className == "it" || eSrc.className == "id") {
        window.event.srcElement.className = "ie";
        if(ultObj != null) ultObj.className = "it";
        ultObj = window.event.srcElement;
        sMostrar(ultObj.id.substring(1,ultObj.id.length-1));
    }
    else if(eSrc.className == "ii") {
        if(eSrc.src.substring(eSrc.src.length - iNl.length, eSrc.src.length) != iNl){
            objid = document.all(eSrc.id.substring(0,eSrc.id.length-1));
            if(objid.style.display == '') {
                objid.style.display='none';
                eSrc.src = iFc;
            } else if (objid.style.display == 'none') {
                objid.style.display='block';
                eSrc.src = iAb;
            } else {
                objid.style.display='none';
                eSrc.src = iFc;
            }
        }
    }
}

document.ondblclick = function() {
    var eSrc = window.event.srcElement;
    if (eSrc.className == "it" || eSrc.className == "id" || eSrc.className == "ie") {
        window.event.srcElement.className = "ie";
        if(ultObj != null && ultObj != eSrc) ultObj.className = "it";
        ultObj = window.event.srcElement;
        iSrc = document.all(eSrc.id.substring(0,eSrc.id.length-1) + 'i');
        if(iSrc.src.substring(iSrc.src.length - iNl.length,iSrc.src.length) != iNl){
            objid = document.all(eSrc.id.substring(0,eSrc.id.length-1));
            if(objid.style.display == '') {
                objid.style.display='none';
                iSrc.src = iFc;
            } else if (objid.style.display == 'none') {
                objid.style.display='block';
                iSrc.src = iAb;
            } else {
                objid.style.display='none';
                iSrc.src = iFc;
            }
        }
    }
}

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

É porque estão usando uma propriedade que só existe no iE.

srcElement.

O código para funcionar no s dois navegadores deve ser assim:

document.onmouseover = function(event) {
    try{
    var eSrc=window.event.srcElement
    }catch(e){var eSrc=event.target}

    if (eSrc.className == "it")
    eSrc.className = "id"
}

Deve também colocar o objeto evento como argumento da função anônima do onmouseover, para funcionar em não iE´s.

Abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...