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

erro no script


marvi

Pergunta

Pessoal, eu tenho em um site uma ABA onde a pessoa clica e vai aparecendo as informações... mas, apesar de funcionar bem, ele sempre exibe no status do navegador do Internet Explorer um erro...

Vejam http://www.ideiabiz.com/monteiro/pre_lancamento.asp?id=11|21

e veja que tem as ABAS azul lá em baixo, com nome apresentação e etc... só que ao clicar em alguma ABA lá, tipo: Apresentação, apesar de funcionar, o navegador fala que teve um erro com o script...

Veja o codigo de fonte da página e veja o script que faz isso também aqui: http://www.ideiabiz.com/monteiro/s/s.asp

Uma função também tem:

function selTab(tab)
{
                        //o elemento abaixo é div, porque as abas estão dentro de um div.
                        tabs = document.getElementsByTagName("div");
                        //aqui cai no que eu já tinha dito: você poderá ter quantas abas quiser. Aqui simplesmente contará quantas abas você tem.
                        for (n=0;n < tabs.length;n++)
                        {
                                   //aqui vai comparar se o nome do id do seu div é igual a aba que você selecionou. Se for, ele vai mostrar o conteúdo da aba selecionada. Caso contrário, não exibe nada.
                                   if (tabs[n].id == tab)
                                   {
                                               tabs[n].style.display = "inline";
                                               document.getElementById('col' + tab.substring(3,tab.length)).style.borderBottom = "none";
                                               document.getElementById('col' + tab.substring(3,tab.length) + '1').style.borderBottom = "none";
                                   }
                                   else
                                   {
                                               tabs[n].style.display = "none";
                                               document.getElementById('col' + tabs[n].id.substring(3,tabs[n].id.length)).style.borderBottom = "black 1px solid";
                                               document.getElementById('col' + tabs[n].id.substring(3,tabs[n].id.length) + '1').style.borderBottom = "black 1px solid";
                                   }
                        }
}

Alguém ver no codigo fonte algum erro?

Obrigado mesmo!

Editado por marvi
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

dae marvi,

oh eu aqui de novo! hehe

no teu codigo:

<form method="POST" action="--WEBBOT-SELF--">
coloque um nome pro form, tipo:
<form name="form" method="POST" action="--WEBBOT-SELF--">
pois é como você se referencia a ele no js:
form.valor_escondido.value = "imagem"+eval(numero+1)
tente usar tb antes de form a palavra document, assim:
document.form.valor_escondido.value = "imagem"+eval(numero+1)
o seu arquivo funcoes.js apresenta um erro de null tb, na linha:
document.getElementById('col' + tabs[n].id.substring(3,tabs[n].id.length)).style.borderBottom = "black 0px solid";
pode ser, eu disse "pode ser" porque você esta ocultando a tab[n] e depois tentando pegar valores dela. então tenta colocar a linha:
tabs[n].style.display = "none";

depois de setar os valores na linha 18.

é isso, verifica ai.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi!

Eu fiz o que você falou, pode conferir la nos links que passei, só não fiz nada na função, pois esse tabs[n].style.display = "none"; já tem lá... Não?

E esse <form não tem a ver com as ABAS la em baixo não... já estava no layout antes das abas... veja que o </form> fecha antes das ABAS...

O problema continua acusando o erro...

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

o problema não é se estava antes das abas ou não.

o problema é q gera erro no IE.

e uma maneira de resolver seria o q eu propus acima.

coloque o atributo name="form" no seu form.

eu sei q ele esta fechando, meu comentario não foi sobre abrir e fechar.

mas sim q ele precisa de um name pra ser bem interpretado em ambos os navegadores.

eu tb sei q a linha tabs[n].style.display = "none"; esta la.

o q eu sugeri foi alterar a posicao dela,

ela aparece em primeiro, seguida de 2 linhas.

minha sugestao é ela aperecer em terceiro, logo apos as 2 linhas.

você precisa realizar testes para descobrir a solucao.

loucura é fazer sempre a mesma coisa e esperar resultados diferentes não é?!?

vi q não existe uma variavel chamada

valor_escondido

dentro do seu <form...>

da onde vem esse valor?

Link para o comentário
Compartilhar em outros sites

  • 0

Ok então!

coloque o atributo name="form" no seu form

Re: já coloquei!

E na função fiz:

function selTab(tab)
{
                        //o elemento abaixo é div, porque as abas estão dentro de um div.
                        tabs = document.getElementsByTagName("div");
                        //aqui cai no que eu já tinha dito: você poderá ter quantas abas quiser. Aqui simplesmente contará quantas abas você tem.
                        for (n=0;n < tabs.length;n++)
                        {
                                   //aqui vai comparar se o nome do id do seu div é igual a aba que você selecionou. Se for, ele vai mostrar o conteúdo da aba selecionada. Caso contrário, não exibe nada.
                                   if (tabs[n].id == tab)
                                   {
                                               tabs[n].style.display = "inline";
                                               document.getElementById('col' + tab.substring(3,tab.length)).style.borderBottom = "none";
                                               document.getElementById('col' + tab.substring(3,tab.length) + '1').style.borderBottom = "none";
                                   }
                                   else
                                   {
                                               document.getElementById('col' + tabs[n].id.substring(3,tabs[n].id.length)).style.borderBottom = "black 0px solid";
                                               document.getElementById('col' + tabs[n].id.substring(3,tabs[n].id.length) + '1').style.borderBottom = "black 0px solid";
tabs[n].style.display = "none";
                                   }
                        }
}
Esse valor_escondido vem o valor imagem1 logo quando carrega, não...
valor_escondido = "imagem1"

document.form.valor_escondido.value=valor_escondido

mouseClick(valor_escondido)

Na verdade essas questões de ABAS achei navegando na internet e o codigo original é esse:

http://imasters.uol.com.br/artigo/4144/asp...personalizadas/

E adaptei com as setas das imagens

http://www.livrojquery.com.br/temp/slider/

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0
valor_escondido = "imagem1"

document.form.valor_escondido.value=valor_escondido

mouseClick(valor_escondido)

veja seu codigo acima.

você tem uma variavel em javascript chamada valor_escondido,

q recebe o valor imagem1.

ate ai tudo bem.

depois você diz q no seu formulario tem uma variavel com o mesmo nome q ira receber o valor

da variavel valor_escondido.

ai temos um problema, porque seu form não possui essa variavel.

logo, gera erro no script.

Link para o comentário
Compartilhar em outros sites

  • 0

não não é??!

mas se você tiver a linha

document.form.valor_escondido.value=valor_escondido

obrigatoriamente você precisa ter dentro do seu form

<form ...>
<input type="hidden" name="valor_escondido" id="valor_escondido">
</form>

algo nesse sentido.

eu dei uma olhada rapida no codigo do imasters ali,

e igual igual não esta.

o seu js esta dando erro quando tenta ler o id.

e o codigo original as ids das abas, o cara colocou divs com id e name de mesmo nome.

e você colocou em tedes e não em divs.

isso pode gerar problemas.

tente fazer como no exemplo do codigo imasters.

e criar uma variavel no form.

isso deve resolver os problemas.

Editado por Mestre SAM
Link para o comentário
Compartilhar em outros sites

  • 0

Colquei em divs dentro da tabela:

Minhas divs:

<div name="tabEndereco" id="tabEndereco" style="display:none">
      <%=lazer%>
</div>
      
            <div name="tabFone" id="tabFone" style="display:none">
            <iframe width="684" height="183" src="imagemnova.asp?id=<%=varvalor%>" name="I1" style="border: 1px solid #F4F3F1; " border="0" frameborder="0"></iframe>

            </div>

          
            <div name="tabEmail" id="tabEmail" style="display:none">
            <iframe width="684" height="183" src="imagensplantas.asp?id=<%=varvalor%>" name="I1" style="border: 1px solid #F4F3F1; " border="0" frameborder="0"></iframe>

            </div>
  
     <div name="tabLegal" id="tabLegal" style="display:none">
            <iframe width="684" height="183" src="imagensilustracao.asp?id=<%=varvalor%>" name="I1" style="border: 1px solid #F4F3F1; " border="0" frameborder="0"></iframe>
            </div>
  
            <div name="tabVideo" id="tabVideo" style="display:none">

                         <iframe width="684" height="183" src="imagensvideos1.asp?id=<%=varvalor%>" name="I1" style="border: 1px solid #F4F3F1; " border="0" frameborder="0"></iframe>
            </div>
  
 <div name="tabLocal" id="tabLocal" style="display:none">
                                <!--#include file="local.asp"-->
            </div>


 <div name="tabPreco" id="tabPreco" style="display:none">
  <!--#include file="financiamento.asp"-->
            </div>

Acho que vou desistir... vou colocar o lightbox de volta e quando eu precisar abrir um HTML com efeito eu uso mesmo um POP UP ou algo assim... acho que já embolei de mais a minha programação...infelizmente...

Obrigado pela ajuda!

OBS: eu coloquei um <input type="hidden" name="imagem1" id="valor_escondido"> no form e ele acabou inibindo os efeitos de cores ao passar do mouse nas abas, tirei esse campo do form e os efeitos de cores voltou...

Acredito que esse valor_escondido conserva a figura que conserva a cor ao passar o mouse para ficar vermelho e azul

Editado por marvi
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...