JavaScript - Script para cambiar css no funciona

 
Vista:
Imágen de perfil de Jacinto

Script para cambiar css no funciona

Publicado por Jacinto (4 intervenciones) el 04/07/2012 18:53:00
Muy buenas.
Estoy intentando atraves de un script que a una determinada hora del dia se cambie la hoja de estilos y carge otra, pero por algun motivo que no consigo entender ( puedo decir que en javascript estoy todabia un poco verde) no logro que se cambie.
este codigo anteriormente lo use para cambiar unas imagenes del body de una web y si funcionaba.
El codigo es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script language="JavaScript">
 function css(){
   fecha = new Date();
   hora = fecha.getHours();
 
   if(hora >=18 && hora <=8){//css desde las 18pm hasta las 8am
	  document.getElementById('noche').href='css/style_noche.css';
   }
   }
</script>
//Mi hoja de estilo
<link rel="stylesheet" href="css/style_noche.css" id="noche" />
//y su llamada en el body
 
<body onLoad="inicio(); css()">

Podria alguien orientarme?
Un saludo y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir un css u otro dependiendo de la hora

Publicado por xve (2100 intervenciones) el 10/07/2012 08:17:12
Hola Jacinto, la verdad es que nunca he cambiado una hoja de estilo entera desde javascript, ya que siempre hemos utiliza php, por lo cual al cargar la pagina cambiamos la hoja de estilos antes de generar la pagina html.

Pero desde javascript, lo que podrías haces, en vez de cambiar la pagina, poner la que toca dependiendo de la hora... algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
<script language="JavaScript">
    var fecha = new Date();
    var hora = fecha.getHours();
 
    /* Definimos el estilo */
    var style=document.createElement("link");
    style.rel="stylesheet";
    style.type="text/css";
 
    if(hora>=18 && hora<=8)//css desde las 18pm hasta las 8am
    {
        /* Definimos el estilo de noche */
        style.href="css/style_noche.css";
    }else{
        /* Definimos el estilo del dia */
        style.href="css/style_dia.css";
    }
    /* Añadimos el estilo a la cabecera */
    document.head.appendChild(style);
</script>
</head>
 
<body>
texto
</body>
</html>

Lo he probado y funciona correctamente.

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto

Añadir un css u otro dependiendo de la hora

Publicado por Jacinto (4 intervenciones) el 10/07/2012 11:55:32
Muchas gracias voy a probarlo y ya os comento.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto Ardines obeso

Añadir un css u otro dependiendo de la hora

Publicado por Jacinto Ardines obeso (4 intervenciones) el 10/07/2012 16:55:00
Muy buenas, por algun extraño motivo no acaba de cargar la hoja de estilos css noche.
Cambie la hora para poder probarlo antes como es logico, pero solo carga la hoja nomal de estilos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script language="JavaScript">
var fecha = new Date();
var hora = fecha.getHours(); /* Definimos el estilo */
var style=document.createElement("link");
 style.rel="stylesheet";
 style.type="text/css";
 if(hora>=13 && hora<=8) {
 style.href="css/style_noche.css"; }
 else{
 style.href="css/style.css"; } /* Añadimos el estilo a la cabecera */
 document.head.appendChild(style);
 </script>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/validaciones.js"></script>
<script type="text/javascript" src="js/validar.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->


Telo muestro asi, para que veas lo que existe en el HEAD de mi web.
El script debe de funcionar ya que no existe en el head ninguna llamada a dichas hojas.
Lo probe tanto en mi localhost como en el hosting donde esta alojada mi web.
Que es lo que podria estar sucediendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir un css u otro dependiendo de la hora

Publicado por xve (2100 intervenciones) el 10/07/2012 22:43:44
Hola Jacinto, si haces un alert(hora); que te devuelve??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jacinto Ardines obeso

Añadir un css u otro dependiendo de la hora

Publicado por Jacinto Ardines obeso (4 intervenciones) el 11/07/2012 11:31:15
Buenas.
Si hago un alert de la variable style, que supongo que sera a lo que te refieres.
La respuesta es
object HTMLLinkElement

Espero que esa fuera tu pregunta.
Por cierto tengo que llamar desde la etiqueta body a la funcion style?
<body onLoad="style()">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar