diraol Postado Abril 20, 2006 Denunciar Share Postado Abril 20, 2006 Fala pessoal, beleza?Então, tenho o menu abaixo que utilizo em um site. Mas ele não aparece no firefox. Alguém sabe me explicar o porque disto?Ah, não tenho MUUUUITA pressa, sem stress pra resolver isso... :PAh, existe o "gerador" desse menu, mas eu não tenho acesso a ele. :(Ah, mais uma coisinha, se alguém tiver alguma idéia de como eu posso adicionar mais um nível nesse menu (tipo, mais um submenu) eu agradeço também. :Pai vai o código:<!-- *** Inicio W3Menu v1.0 (Gerador Automático de Menus) *** --> <!-- => Arquivo Fonte: /AcessoIntranet/Includes/W3_Menu.xml --> <script language="javascript"> var MenuUltimaModificacao = "3/3/2005 1:27:48 AM"; var MenuUsuarioUltimaModificacao = "rodrigo.braga"; var w3_MenuOrientacao = "horizontal"; var w3_limiteHorizontalTela = 783; var MenuTopPosicao = 102; var MenuLeftPosicao = 0; var MenuTopoColor = "#828282"; var MenuTopoBGColor = "#FFFFFF"; var MenuItemColor = "#828282"; var MenuItemBGColor = "#FFFFFF"; var indicadorMenu = "»"; var prefixoMenu = "w3_Menu"; var prefixoItem = "w3_Item"; var w3_valorMenu = '1'; var w3_MenuAtual = prefixoMenu + w3_valorMenu; var w3_ItemAtual = prefixoItem + w3_valorMenu; var w3_MenuDelayOut = 100; var zIndexInicio = 5000; var MenusDesligados = []; var timeUltimoEvento = new Date(); var timerItemSelecionado = null; var largura = 0; /* Estas variáveis são definidas depois de a página ser carregada, e está feito nos arquivos default.asp e includes/fimpag.asp if(w3_MenuOrientacao != "horizontal") { var larguraTelaInicial = document.body.clientWidth; var alturaTelaInicial = document.body.clientHeigth; }*/ String.prototype.valorMenu = function () { return (this.split(prefixoMenu).join('').split(prefixoItem).join('').split('XML').join('')); } String.prototype.startsWith = function (strTexto) { return (this.substring(0,strTexto.length) == strTexto ? true : false ); } String.prototype.nivelMenu = function () { return(this.valorMenu().length - 2); } String.prototype.toInteiro = function () { return(this.split('px')[0]); } String.prototype.getParendNode = function () { return(document.getElementById(this.split("_").slice(0,this.split("_").length-1).join('_').split(prefixoItem).join(prefixoMenu))); } //document.oncontextmenu = function(){return false}; //document.ondragstart = function(){return false}; //document.onselectstart = function(){return false}; function AtivaMenuTempoReal(MenuId) { var objMenu = document.getElementById(MenuId) objMenu.style.zIndex = zIndexInicio; objMenu.onselectstart = function () { return false; } if( !objMenu.getAttribute("menuCarregado") ) { construirMenuTempoReal(objMenu); objMenu.style.zIndex = zIndexInicio++; var listaItem = objMenu.childNodes /* Manter compatibilidade com o browser FireFox. */ for (var i=0; i < listaItem.length; i++) { if (listaItem[i].nodeType == 3) objMenu.removeChild(listaItem[i]); } for (var i=0; i < listaItem.length; i++) { if (document.getElementById(listaItem[i].id).getAttribute("href")) { document.getElementById(listaItem[i].id).onclick = ItemMouseOnClick; } if(0 == -1) { document.getElementById(listaItem[i].id).onclick = ItemMouseOnClick_ModoDesinger; } document.getElementById(listaItem[i].id).onmouseover = ItemMouseOver; document.getElementById(listaItem[i].id).onmouseout = ItemMouseOut; document.getElementById(listaItem[i].id).ondragstart = function () { return false } document.getElementById(listaItem[i].id).oncontextmenu = function () { return false } document.getElementById(listaItem[i].id).onselectstart = function () { return false } } objMenu.setAttribute("menuCarregado","sim"); } } function construirMenuTempoReal(objMenu) { /* Manter compatibilidade com o browser FireFox. */ for (var i=0; i < objMenu.childNodes.length; i++) { if (objMenu.childNodes[i].nodeType == 3) objMenu.removeChild(objMenu.childNodes[i]); } if(objMenu.id.nivelMenu() == -1) { var largura = 143; //var largura = w3_limiteHorizontalTela/objMenu.childNodes.length; if(w3_MenuOrientacao == "horizontal") { var largura = (w3_limiteHorizontalTela - MenuLeftPosicao) } with(objMenu.style) { top = MenuTopPosicao; left = (MenuLeftPosicao >= 0 ? MenuLeftPosicao : ((MenuLeftPosicao - largura + document.body.clientWidth)/2)); cursor = "default"; position = "absolute"; visibility = "visible"; display = ""; width = largura; overflow = "hidden"; border = (MenuTopoColor.toLowerCase().indexOf("ffffff") != -1 ? MenuTopoBGColor : MenuTopoColor) + " 1px solid"; if(w3_MenuOrientacao != "horizontal") { border = "#CCCCCC 1px solid"; } } var MaxAltura = 0; var MaxLargura = 0; var largura = 143; //var largura = w3_limiteHorizontalTela / objMenu.childNodes.length; if(w3_MenuOrientacao == "horizontal") { var largura = (w3_limiteHorizontalTela - MenuLeftPosicao) / objMenu.childNodes.length; } for (var i=0; i < objMenu.childNodes.length; i++) { with(document.getElementById(objMenu.childNodes[i].id)) { var novoNodeBR = document.createElement("nobr") var novoNodeCENTER = document.createElement("center") var novoNodeB = document.createElement("b") var novoNodeTexto = document.createTextNode(firstChild.nodeValue); firstChild.nodeValue = ""; novoNodeB.appendChild(novoNodeTexto); novoNodeCENTER.appendChild(novoNodeB); novoNodeBR.appendChild(novoNodeCENTER); appendChild(novoNodeBR); //if (getAttribute("href") != null) style.cursor = "pointer"; if (getAttribute("href") != null) style.setExpression("'cursor'","'pointer'","JavaScript"); with(style) { position = "absolute"; visibility = "inherit"; color = MenuTopoColor; backgroundColor = MenuTopoBGColor; borderRight = MenuTopoBGColor + " 1px solid"; font = "7pt Verdana, Arial"; left = (w3_MenuOrientacao == "horizontal" ? (i * (largura)) : 0); top = 0; width = largura; padding = "1px"; if (w3_MenuOrientacao != "horizontal") paddingLeft = "4px"; overflow = "hidden"; } } MaxAltura = Math.max(MaxAltura, objMenu.childNodes[i].offsetHeight); MaxLargura = Math.max(MaxLargura, objMenu.childNodes[i].offsetWidth); } if(w3_MenuOrientacao == "horizontal") { objMenu.style.height = 2 + MaxAltura; } else { objMenu.style.width = 2 + MaxLargura; objMenu.style.height = objMenu.childNodes.length * (MaxAltura + 2) - 2; } for (var i=0; i< objMenu.childNodes.length; i++) { if(w3_MenuOrientacao == "horizontal") { objMenu.childNodes[i].style.height = MaxAltura; objMenu.childNodes[i].style.width = MaxLargura } else { objMenu.childNodes[i].style.top = i * (MaxAltura + 2); objMenu.childNodes[i].style.width = MaxLargura; } } } else { with(objMenu.style) { top = MenuTopPosicao; left = MenuLeftPosicao; cursor = "default"; position = "absolute"; visibility = "visible"; display = ""; width = 1; overflow = "hidden"; border = (MenuItemColor.toLowerCase().indexOf("ffffff") != -1 ? MenuItemBGColor : MenuItemColor) + " 1px solid"; } var MaxAltura = 0; var MaxLargura = 0; for (var i=0; i < objMenu.childNodes.length; i++) { with(document.getElementById(objMenu.childNodes[i].id)) { // ===> O problema é aqui... if(document.getElementById(id.split(prefixoItem).join(prefixoMenu))) { innerHTML = innerHTML + " " + indicadorMenu; } innerHTML = "<nobr>" + innerHTML + "</nobr>"; if (getAttribute("href")) style.cursor = "hand" with(style) { position = "absolute"; visibility = "inherit"; color = MenuItemColor; backgroundColor = MenuItemBGColor; borderBottom = MenuItemBGColor + " 1px solid"; font = "7pt Verdana, Arial"; left = 0; width = 1; padding = "1px"; overflow = "hidden"; } MaxAltura = Math.max(MaxAltura, objMenu.childNodes[i].scrollHeight); MaxLargura = Math.max(MaxLargura, objMenu.childNodes[i].scrollWidth); } } objMenu.style.width = 2 + MaxLargura; objMenu.style.height = objMenu.childNodes.length * (MaxAltura + 1) for (var i=0; i< objMenu.childNodes.length; i++) { objMenu.childNodes[i].style.top = i * (MaxAltura + 1); objMenu.childNodes[i].style.width = MaxLargura; } } } function ItemMouseOnClick_ModoDesinger() { var respostaJanela = showModalDialog("PopUp_ItemMenu.asp?menuItem=" + document.getElementById(this.id).id, "", "font-family:Verdana;font-size:8;dialogWidth:400px;dialogHeight:250px"); if (respostaJanela != null) { Form1.Acao.value = respostaJanela[0]; Form1.menuItem.value = document.getElementById(this.id).id; Form1.rotulo.value = respostaJanela[1]; Form1.href.value = respostaJanela[2]; Form1.target.value = respostaJanela[3]; Form1.submit(); } } function ItemMouseOnClick() { if (document.getElementById(this.id).getAttribute("target")) { window.open(document.getElementById(this.id).getAttribute("href"), document.getElementById(this.id).getAttribute("target")); } else { location.href = document.getElementById(this.id).getAttribute("href"); } } function ItemMouseOver() { clearInterval(timerItemSelecionado); timeUltimoEvento = new Date(); if (document.getElementById(this.id).getAttribute("href")) window.status = document.getElementById(this.id).getAttribute("href"); var objMenuRaiz = document.getElementById(prefixoMenu + w3_valorMenu); var limiteHorizontal = parseInt(objMenuRaiz.style.left.split('px')[0]) + objMenuRaiz.scrollWidth; var objItem = document.getElementById(this.id); objItem.style.backgroundColor = (objItem.id.nivelMenu() == 1 ? MenuTopoColor : MenuItemColor); objItem.style.color = (objItem.id.nivelMenu() == 1 ? MenuTopoBGColor : MenuItemBGColor); var objMenuDoItem = document.getElementById(prefixoMenu + this.id.valorMenu()); if (objMenuDoItem) { AtivaMenuTempoReal(objMenuDoItem.id); objMenuDoItem.style.visibility = 'visible'; if(MenusDesligados.length >= 0) for(var i=0; i < MenusDesligados.length; i++) { if (MenusDesligados[i] == objMenuDoItem.id.valorMenu() ) return; } MenusDesligados[MenusDesligados.length] = objMenuDoItem.id.valorMenu(); if (objItem.id.nivelMenu() == 1) { if(w3_MenuOrientacao == "horizontal") { objMenuDoItem.style.top = 1 + parseInt(parseInt(objItem.style.height.split('px')[0]) + parseInt(objItem.style.top.split('px')[0]) + document.getElementById(prefixoMenu + w3_valorMenu).offsetTop); objMenuDoItem.style.left = parseInt(objItem.style.left.split('px')[0]) + document.getElementById(prefixoMenu + w3_valorMenu).offsetLeft; if (document.body.clientWidth - 17 < (parseInt(objMenuDoItem.style.left.split('px')[0]) + objMenuDoItem.offsetWidth)) objMenuDoItem.style.left = parseInt(document.getElementById(prefixoMenu + w3_valorMenu).offsetLeft + parseInt(objItem.style.left.split('px')[0]) + objItem.scrollWidth - objMenuDoItem.scrollWidth); } else { objMenuDoItem.style.top = Math.round(parseInt(objItem.id.getParendNode().style.top.split('px')[0]) + objItem.offsetTop + (0.75 * objItem.scrollHeight)); objMenuDoItem.style.left = Math.round(parseInt(objItem.id.getParendNode().style.left.split('px')[0]) + (0.75 * objItem.id.getParendNode().scrollWidth)); if (document.body.clientWidth < parseInt(objMenuDoItem.style.left.split('px')[0]) + objMenuDoItem.offsetWidth + 15) objMenuDoItem.style.left = parseInt(objItem.id.getParendNode().style.left.split('px')[0]) - (0.9 * objMenuDoItem.scrollWidth); while (document.body.clientHeight < parseInt(objMenuDoItem.style.top.split('px')[0]) + objMenuDoItem.offsetHeight) objMenuDoItem.style.top = objMenuDoItem.style.top.split('px')[0]-1; } } else { objMenuDoItem.style.top = Math.round(parseInt(objItem.id.getParendNode().style.top.split('px')[0]) + objItem.offsetTop + (0.75 * objItem.scrollHeight)); objMenuDoItem.style.left = Math.round(parseInt(objItem.id.getParendNode().style.left.split('px')[0]) + (0.75 * objItem.id.getParendNode().scrollWidth)); if (document.body.clientWidth < parseInt(objMenuDoItem.style.left.split('px')[0]) + objMenuDoItem.offsetWidth + 15) objMenuDoItem.style.left = parseInt(objItem.id.getParendNode().style.left.split('px')[0]) - (0.9 * objMenuDoItem.scrollWidth); while (document.body.clientHeight < parseInt(objMenuDoItem.style.top.split('px')[0]) + objMenuDoItem.offsetHeight + 15) objMenuDoItem.style.top = objMenuDoItem.style.top.split('px')[0]-1; } } w3_ItemAtual = this.id; w3_MenuAtual = this.id.getParendNode().id; } function ItemMouseOut() { timeUltimoEvento = new Date(); var objItem = document.getElementById(this.id); objItem.style.backgroundColor = (objItem.id.nivelMenu() == 1 ? MenuTopoBGColor : MenuItemBGColor); objItem.style.color = (objItem.id.nivelMenu() == 1 ? MenuTopoColor : MenuItemColor); setTimeout('desligaMenus();',5); timerItemSelecionado = setInterval('verificaTimer();',50); } function desligaMenus() { for(var i=0; i < MenusDesligados.length; i++) if (w3_ItemAtual.valorMenu().indexOf(MenusDesligados[i]) == -1 && MenusDesligados[i] != 'deletado') { document.getElementById(prefixoMenu + MenusDesligados[i]).style.visibility = "hidden"; MenusDesligados[i] = "deletado"; } tempArray = []; for(var i=0; i < MenusDesligados.length; i++) if (MenusDesligados[i] != 'deletado') tempArray[tempArray.length] = MenusDesligados[i]; MenusDesligados = tempArray; } function verificaTimer() { if ((new Date() - timeUltimoEvento) > w3_MenuDelayOut) { w3_ItemAtual = prefixoItem + w3_valorMenu; desligaMenus(); clearInterval(timerItemSelecionado); window.status = ''; } } outrosBodyOnLoad = (window.onload) ? window.onload : new Function; window.onload = function() { setTimeout("MenuStartOnLoad()",5) }; function MenuStartOnLoad() { /* Ajustar o real limite Horizontal da Tela */ w3_limiteHorizontalTela = MenuLeftPosicao + document.getElementById(w3_MenuAtual).childNodes.length * Math.round((w3_limiteHorizontalTela - MenuLeftPosicao) / document.getElementById(w3_MenuAtual).childNodes.length); AtivaMenuTempoReal(w3_MenuAtual); if(w3_MenuOrientacao != "horizontal") { criaLinhasMenusVertical(); } outrosBodyOnLoad(); } outrosBodyOnResize = (window.onresize) ? window.onresize : new Function; window.onresize = function() { setTimeout("MenuStartOnResize()",5) }; function MenuStartOnResize() { if(w3_MenuOrientacao != "horizontal") if (larguraTelaInicial != document.body.clientWidth) { location.reload(); outrosBodyOnResize(); } } function criaLinhasMenusVertical() { var menuPai = document.getElementById(w3_MenuAtual); for (var i=1; i < menuPai.childNodes.length; i++) { var novoDiv = document.createElement("div"); novoDiv.style.fontSize = "1pt"; novoDiv.style.border = "#CCCCCC 1px solid"; novoDiv.style.position = "absolute"; novoDiv.style.top = (i * (menuPai.childNodes[i].offsetHeight+2)) + menuPai.offsetTop; novoDiv.style.left = menuPai.offsetLeft; novoDiv.style.width = parseInt(menuPai.offsetWidth) - 2; novoDiv.style.height = parseInt(menuPai.offsetHeight)/7 + 1; if (i == menuPai.childNodes.length-1) { novoDiv.style.height = parseInt(novoDiv.style.height) - 1 - 2;} document.body.appendChild(novoDiv); } } </script> <% 'desenvolver menu dinamico posteriormente ao projeto %> <%if Session("area")<>"" then%> <div id="w3_Menu1" style="visibility:hidden; display:none"> <div id="w3_Item1_1" style="visibility:inherit" href="principal.asp?modo=principal&verif=ok">Avaliação de Ensino</div> <div id="w3_Item1_2" style="visibility:inherit">Inserção de Dados</div> <div id="w3_Item1_3" style="visibility:inherit">Apresentação de Dados</div> <%if Session("nivel")=1 then%> <div id="w3_Item1_5" style="visibility:inherit">Restrito</div> <%end if%> <div id="w3_Item1_4" style="visibility:inherit" href="sair.asp">Sair</div> </div> <%if (Session("nivel")="1" Or Session("nivel")="2") then%> <div id="w3_Menu1_2" style="visibility:hidden; display:none"> <div id="w3_Item1_2_1" style="visibility:inherit" href="principal.asp?modo=insere_notas&verif=ok">Notas</div> <div id="w3_Item1_2_2" style="visibility:inherit" href="principal.asp?modo=insere_comentarios&verif=ok">Questões Escritas</div> </div> <% end if %> <div id="w3_Menu1_3" style="visibility:hidden; display:none"> <div id="w3_Item1_3_1" style="visibility:inherit" href="principal.asp?modo=ver_notas&verif=ok">Médias</div> <div id="w3_Item1_3_2" style="visibility:inherit" href="principal.asp?modo=ver_comentarios&verif=ok">Questões Escritas</div> </div> <%if Session("nivel")=1 then%> <div id="w3_Menu1_5" style="visibility:hidden; display:none"> <div id="w3_Item1_5_1" style="visibility:inherit" href="principal.asp?modo=inserir_usuario&verif=ok">Inserir Usuario</div> <div id="w3_Item1_5_2" style="visibility:inherit" href="principal.asp?modo=excluir_usuario&verif=ok">Excluir Usuario</div> <div id="w3_Item1_5_3" style="visibility:inherit" href="principal.asp?modo=excluir_notas_turmas.asp&verif=ok">Excluir Notas de uma Turma</div> <div id="w3_Item1_5_4" style="visibility:inherit" href="principal.asp?modo=excluir_coment_email&verif=ok">Excluir Comentários inseridos por um usuário</div> <div id="w3_Item1_5_5" style="visibility:inherit" href="principal.asp?modo=inser_pergadic&verif=ok">Inserir Comentário Adicional</div> <div id="w3_Item1_5_6" style="visibility:inherit" href="principal.asp?modo=listar_usuario&verif=ok">Listar Usuarios e Seus Dados</div> <div id="w3_Item1_5_7" style="visibility:inherit" href="principal.asp?modo=excluir_redacao&verif=ok">Excluir redacao</div> <div id="w3_Item1_5_8" style="visibility:inherit" href="principal.asp?modo=gerar_rel&verif=ok">Gerar Relatório</div> <div id="w3_Item1_5_9" style="visibility:inherit" href="principal.asp?modo=teste&verif=ok">teste</div> </div> <%end if%> <%end if%> <!-- *** Final W3Menu v1.0 *** -->Vlw aí pessoal!AbraçosDiego... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OSJunior Postado Abril 20, 2006 Denunciar Share Postado Abril 20, 2006 Opa! Eae, firme?Bem... você pode criar mais itens, formando novos códigos como esse: <div id="w3_Menu1_5" style="visibility:hidden; display:none"> <div id="w3_Item1_5_1" style="visibility:inherit" href="principal.asp?modo=inserir_usuario&verif=ok">Inserir Usuario</div> <div id="w3_Item1_5_2" style="visibility:inherit" href="principal.asp?modo=excluir_usuario&verif=ok">Excluir Usuario</div> <div id="w3_Item1_5_3" style="visibility:inherit" href="principal.asp?modo=excluir_notas_turmas.asp&verif=ok">Excluir Notas de uma Turma</div> <div id="w3_Item1_5_4" style="visibility:inherit" href="principal.asp?modo=excluir_coment_email&verif=ok">Excluir Comentários inseridos por um usuário</div> <div id="w3_Item1_5_5" style="visibility:inherit" href="principal.asp?modo=inser_pergadic&verif=ok">Inserir Comentário Adicional</div> <div id="w3_Item1_5_6" style="visibility:inherit" href="principal.asp?modo=listar_usuario&verif=ok">Listar Usuarios e Seus Dados</div> <div id="w3_Item1_5_7" style="visibility:inherit" href="principal.asp?modo=excluir_redacao&verif=ok">Excluir redacao</div> <div id="w3_Item1_5_8" style="visibility:inherit" href="principal.asp?modo=gerar_rel&verif=ok">Gerar Relatório</div> <div id="w3_Item1_5_9" style="visibility:inherit" href="principal.asp?modo=teste&verif=ok">teste</div> </div> E quanto à não funcionar no FF: Alguns códigos realmente não funcionam nele...bem, você precisa verificar certos comandos, como por exemplo childNodes. Tente substituir esse e outros comandos, por algo BEM mais simples, assim o FF interpretará. Pois apenas o IE reconhece.Você pode substituir também os comandos CSS que estão agregados no JS, colocando-os em tags style.Falou. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 diraol Postado Abril 21, 2006 Autor Denunciar Share Postado Abril 21, 2006 Fala Orlando....Então, quanto ao "submenu", o que eu queria não era criar mais opções do mesmo nível do atual (tipo, atualmente tem 2 níveis, digamos assim. Um GRUPO e os ITENS desse grupo).........O que eu pretendia era que tivesse um GRUPO, o SUBGRUPO, e o ITEM do SUBGRUPO........ captou?! :)Agora, sobre os erros com o FF, é que assim,esse menu é utilizado em um site da minha faculdade. Só que ele funciona tanto no FF como no IE.Mas o código que eu alterei só funciona no IE. Ai eu queria saber qual tipo de "componente" pode estar dando problema (na verdade não fui eu quem alterou o código, foi o meu amigo).Entendeu? :)É que eu não manjo muito de componentes que dão problema com o FF. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
diraol
Fala pessoal, beleza?
Então, tenho o menu abaixo que utilizo em um site. Mas ele não aparece no firefox. Alguém sabe me explicar o porque disto?
Ah, não tenho MUUUUITA pressa, sem stress pra resolver isso... :P
Ah, existe o "gerador" desse menu, mas eu não tenho acesso a ele. :(
Ah, mais uma coisinha, se alguém tiver alguma idéia de como eu posso adicionar mais um nível nesse menu (tipo, mais um submenu) eu agradeço também. :P
ai vai o código:
Vlw aí pessoal!
Abraços
Diego...
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.