Foros del Web » Programando para Internet » Javascript »

Switch en Firefox

Estas en el tema de Switch en Firefox en el foro de Javascript en Foros del Web. Hola. este código funciona en IE pero en Firefox no. El problema es que se queda en el primer caso ("") y no pasa al ...
  #1 (permalink)  
Antiguo 04/06/2007, 04:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Switch en Firefox

Hola. este código funciona en IE pero en Firefox no. El problema es que se queda en el primer caso ("") y no pasa al segundo. Estoy seguro que el problema en FF es que no lee bien esta linea: switch (obj.style.background)

Código:
<html>
<head>
<script language="javascript" type="text/javascript">
function Cambio (obj) {

    switch (obj.style.background)
    {
        case "" :
            obj.style.background = "red";
            break;
        case "red" :
            obj.style.background = "yellow";
            break;
        case "yellow" :
            obj.style.background = "red";
            break;
    }
}
</script>
</head>
<body>
<table border="1">
<tr>
<td onmouseover="Cambio(this)" onmouseout="Cambio(this)">Texto</td>
</tr>
</table>
</body>
</html>
Gracias
  #2 (permalink)  
Antiguo 04/06/2007, 05:15
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
Re: Switch en Firefox

Prueba con esto:
Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">
function 
Cambio (obj) { 
    switch (
obj.style.background.split(" ")[0])
    {
        case 
"" :
            
obj.style.background"red";
            break;
        case 
"red" :
            
obj.style.background "yellow";
            break;
        case 
"yellow" :
            
obj.style.background "red";
            break;
    }
}
</script>
</head>
<body>
<table border="1">
<tr>
<td onmouseover="Cambio(this)" onmouseout="Cambio(this)">Texto</td>
</tr>
</table>
</body>
</html> 
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 04/06/2007, 05:17
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
Re: Switch en Firefox

También funciona así:
Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">
function 
Cambio (obj) {

    switch (
obj.style.backgroundColor)
    {
        case 
"" :
            
obj.style.background "red";
            break;
        case 
"red" :
            
obj.style.background "yellow";
            break;
        case 
"yellow" :
            
obj.style.background "red";
            break;
    }
}
</script>
</head>
<body>
<table border="1">
<tr>
<td onmouseover="Cambio(this)" onmouseout="Cambio(this)">Texto</td>
</tr>
</table>
</body>
</html> 
Y tal vez sea más sencillo...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 04/06/2007, 07:21
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Re: Switch en Firefox

Hey KarlanKas muchas gracias. He estado trabajanod en ello unas cuantas hora y no sabía que estaba mal.

Mil gracias
  #5 (permalink)  
Antiguo 04/06/2007, 08:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
Re: Switch en Firefox

Como sugerencia la próxima vez te recomiendo que uses el alert. Así el script te dice con qué cadena de texto trabaja. En este caso el poner:

alert (obj.style.background)

antes del switch ha sido determinante. Me alegro de que te funcionara!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 05/06/2007, 07:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Re: Switch en Firefox

Hola, otra vez. El código funciona pero el problema ahora es que lo que imprimí enteriormente era solo un ejemple con colores básicos. Cuando he ido a insertarlo en el código principal, resulta que no funciona si no usa el nombre generico del color. Es decir no funciona ni con Hex y con RGB.

Código:
function Cambio(obj) {
alert (obj.style.backgroundColor)
    switch (obj.style.backgroundColor)
    {
        case "" :
            obj.style.background= "rgb(255,0,0)";
            break;

        case "rgb(255,0,0)" :
            obj.style.background = "rgb(255,255,0)";
            break;
        
        case "rgb(255,255,0)" :
            obj.style.background= "rgb(255,0,0)";
            break;

    }
}
</scipt>
</head> 
<body> 
<table border="1"> 
<tr> 
<td onmouseover="Cambio(this)" onmouseout="Cambio(this)">Texto</td> 
</tr> 
</table> 
</body> 
</html>
¿Cuál es el problema?

Gracias
  #7 (permalink)  
Antiguo 05/06/2007, 08:56
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 5 meses
Puntos: 61
Re: Switch en Firefox

El problema está en como llama uno y otro navegador a los colores. Creo que sería mejor usar una segunda variable para hacer que cambie de color:

Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
script>
function 
Cambio(obj,obj2) {


    switch (
obj2)
    {
       case 
:
            
obj.style.backgroundColor "#ffff00";
            break;
        
        case 
:
            
obj.style.backgroundColor"#ff0000";
            break;

    }
}
</script>
</head> 
<body> 
<table border="1"> 
<tr> 
<td onmouseover = "Cambio(this,0)" onmouseout = "Cambio(this,1)" > Texto </td> 
</tr> 
</table> 
</body> 
</html> 
Espero que te sirva!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 07/06/2007, 12:19
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Re: Switch en Firefox

Gracias era justo lo que quería
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.