Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

onedev

[Resolvido] Erro innerhtml nao roda no Fire Fox

Recommended Posts

Uso o código abaixo para efetuar a troca de links de um menu.

Porem o código não funciona no Fire Fox.

 

<script language="JavaScript" type="text/javascript">
	function innerhtml(submenu) 
	{			
		if (submenu == '1')	 {innerhtml1.innerHTML = "link 1 do menu";}
		if (submenu == '2')	 {innerhtml1.innerHTML = "link 2 do menu";}
	}

	function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}

</script>

<a href='minhascoisas.asp' onMouseOver=MM_swapImgRestore();MM_swapImage('Image7','','imagens/menutopo/minhascoisas_2.gif',7);innerhtml(7);>LINK PRINCIPAL</a>

<div id="innerhtml1" style="height:28px"></div>
Aqui irá dentro dessa div exibir o conteudo

Alguem pode dar uma dica, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tirei a chamada desses outras duas funções funciona normal o innerHtml, o problema creio que seja nessas outras funções..

Compartilhar este post


Link para o post
Compartilhar em outros sites

As funções function MM_swapImgRestore() e function MM_swapImage() são apenas para fazer a troca de um botão de imagem. Nesse exemplo eu deveri ter retirados elas mesmo. Então o código deveri ser assim:

 

<script language="JavaScript" type="text/javascript">
	function innerhtml(submenu)
	{			
		if (submenu == '1')	 {innerhtml1.innerHTML = "link 1 do menu";}
		if (submenu == '2')	 {innerhtml1.innerHTML = "link 2 do menu";}
	}
</script>



<a href="minhascoisas.asp" onMouseOver="innerhtml(1);">PASSA O MOUSE AQUI PRA MOSTRAR O CONTEUDO 1 DENTRO DA DIV AI EMBAIXO</a>
<a href="minhascoisas.asp" onMouseOver="innerhtml(2);">PASSA O MOUSE AQUI PRA MOSTRAR O CONTEUDO 2 DENTRO DA DIV AI EMBAIXO</a>


<div id="innerhtml1" style="height:28px"></div>
Aqui irá dentro dessa div exibir o conteudo

Porem funciona no Internet Explorer mas não funciona no Fire Fox.

Alguem pode me dar uma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica se o bowser é IE, se nao for enves de colocar innerhtml1.innerHTML = ........, coloca

 

document.getElementById('innerhtml1').innerHTML='alguma coisa';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Hantaro,

 

funcionou sua dica. O código final ficou assim:

 

<script language="JavaScript" type="text/javascript">
	function innerhtml(submenu)
	{			
		if (submenu == '1')	 {document.getElementById('innerhtml1').innerHTML='link 1';}
		if (submenu == '2')	 {document.getElementById('innerhtml1').innerHTML='link 2';}
		if (submenu == '3')	 {document.getElementById('innerhtml1').innerHTML='link 3';}
	}
</script>



<a href="minhascoisas.asp" onMouseOver="innerhtml(3);">PASSA O MOUSE AQUI PRA MOSTRAR O CONTEUDO 3 DENTRO DA DIV AI EMBAIXO</a><br />
<a href="minhascoisas.asp" onMouseOver="innerhtml(2);">PASSA O MOUSE AQUI PRA MOSTRAR O CONTEUDO 2 DENTRO DA DIV AI EMBAIXO</a><br />
<a href="minhascoisas.asp" onMouseOver="innerhtml(1);">PASSA O MOUSE AQUI PRA MOSTRAR O CONTEUDO 1 DENTRO DA DIV AI EMBAIXO</a><br />


<br />(<div id="innerhtml1" style="height:28px"></div>)

rodou tanto no IE como FF.

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente esqueci do detalhe de passar o codigo.

 

Mas se voce quiser deixar seu codigo menor voce pode usar o switch, ele executa uma verifcaçao para cada 'case' até encontrar uma valida. E a mesma coisa de que colocar varios ifs.

 

 

function innerhtml(submenu){  
	switch(submenu){
		case 1: var conteudo='link 1'; break;
		case 2: var conteudo='link 2'; break;
		case 3: var conteudo='link 3'; break;
	}		  
	document.getElementById('innerhtml1').innerHTML=conteudo;
}

e no caso de verificar o browser basta fazer

 

if(document.all){
codigo para ie
}else{
codigo para outros
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.