Problema com div e span no Firefox 1.0

6 respostas
luiz_ross

Alguem ja teve problema com div´s ou span´s no Firefox?
Criei uma função js que esconde uma table dentro de um div e só funciona no IE6.0, já no Firefox não esconde a tabela e não da erro de javascript.

function mostraTabela(idDiv){

	if (idDiv.style.display == "block"){
	
		idDiv.style.display = "none";
	
	}else{
	
		idDiv.style.display = "block";
	
	}
	
}

6 Respostas

C
Oba esta função funciona para pegar a referência nos browsers comentados:
function getRefToDiv(divID) {
    if( document.layers ) { //Netscape layers
        return document.layers[divID]; }
    if( document.getElementById ) { //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID); }
    if( document.all ) { //Proprietary DOM; IE4
        return document.all[divID]; }
    if( document[divID] ) { //Netscape alternative
        return document[divID]; }
    return false;
}
Exemplo de chamada:
function showDIV(divName)
{
	getRefToDiv(divName).style.visibility = 'visible';
}

function hideDIV(divName)
{
	getRefToDiv(divName).style.visibility = 'hidden';
}

falow

luiz_ross
Não funfa no onclick, da objeto esperado :(
_fs

No FireFox, os valores que está buscando para a propriedade display são

display = ‘none’; // objeto não e renderizado
display = ‘’; // renderização normal

luiz_ross

deixei assim na pagina e ainda só funfa no IE :(

<img  src="file:///C|/WebWorkflow/imagens/agreen.gif"  /></legend>
	  <div id="span1" style="display:" >

[code]if (idDIV.style.display == "")
{
idDIV.style.display = "none";
}
else
{
idDIV.style.display = "";
}

_fs

Cara, você não fechou o atributo style na tag do DIV corretamente.

Fiz esse exemplo pra outro cara aqui no fórum, mas serve para você entender direitinho. Acabei de testá-lo no FireFox e funcionou perfeitamente:

<html>
	<head>
		<title>Tests</title>
		
		<script language="javascript">
			var abas = new Array( 'aba1', 'aba2', 'aba3' );
			function openAba( idAba )
			{
				for( var i = 0; i < abas.length; i++ )
				{
					var el = document.getElementById( abas[ i ] );
					el.style.display = ( idAba == el.id ) ? '' : 'none';
				}
				
				var a = new Array();
			}
			
			function closeAll()
			{
			
			}
		</script>
	</head>

	<body>
		
		<input type="button" value="aba1" onclick="openAba( 'aba1' );">
		<input type="button" value="aba2" onclick="openAba( 'aba2' );">
		<input type="button" value="aba3" onclick="openAba( 'aba3' );">
		
		<div id="aba1" style="position: absolute; top: 20px; left: 0px;">
			<p>conteudo1. Pode ser um iframe ou qualquer outra porcaria</p>
		</div>
		
		<div id="aba2" style="display: none; position: absolute; top: 20px; left: 0px;">
			<p>conteudo2. Pode ser um iframe ou qualquer outra porcaria</p>
		</div>
		
		<div id="aba3" style="display: none; position: absolute; top: 20px; left: 0px;">
			<p>conteudo3. Pode ser um iframe ou qualquer outra porcaria</p>
		</div>
	</body>
</html>
_fs

E aliás, você pode omitir o valor style=“display: ‘’”. Não colocando nada faz com que rufam os tambores o elemento seja renderizado normalmente :smiley:

Perceba que as propriedades display e visibility fazem coisas diferentes.

Criado 13 de dezembro de 2004
Ultima resposta 13 de dez. de 2004
Respostas 6
Participantes 3