JavaScript - Window.Onload en resultado de condición IF

   
Vista:

Window.Onload en resultado de condición IF

Publicado por Vega (16 intervenciones) el 20/02/2014 08:07:42
Hola nuevamente, tengo un problemilla con un código, es la primera vez que intento construir algo en javascript, llevo 4 días intentando de diferentes formas hacer que funcione y hasta ahora ya logré gran parte, pero esto me ha atorado, espero alguien pueda ayudarme.

El problema que tengo es que en este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
function checkchatbox()
{
var chatboxcookie=getCookie("chatboxestado");
if (chatboxcookie == "off")
    {
window.onload = function(){
muestra_oculta('ChatBox');
   }
 alert("Si paso la funcion");
  }
 
}
window.onload = checkchatbox;
</script>

Aquí el detalle radica, en que de esta manera no carga la función "muestra_ocultar" , pero si ejecuta "alert" por lo que según yo no hay error, ahora, si to pongo aparte este código, digamos:

1
2
3
4
5
<script>
window.onload = function(){
muestra_oculta('ChatBox');
   }
</script>

Aquí si lo carga, pero yo necesito que sólo se cargue si el valor de la cookie "chatboxestado" está en off.

Explicaré un poco más, tengo un chat que metí en un div a un costado de mi sitio web en posición fix que está siempre visible, el cual quiero que siempre se muestre oculto o visible según el usuario lo decida, esta configuración la guardo con la cookie "chatboxestado = on/off" donde on, no hace nada, y off, ejecuta "muestra_ocultar" para que se oculte el chat mientras navega el usuario por la web.

Pude cosntruir este script con ayuda de varios sitios web, así es como trabaja todo:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<html>
<head>
<!--Este javascript es para ocultar o mostrar el div del chat-->
<script type="text/javascript">
function muestra_oculta(id){
if (document.getElementById){
var el = document.getElementById(id);
el.style.display = (el.style.display == 'none') ? 'block' : 'none';
}
}
 
//Esta funcion lee las cookies con el XXX nombre c_name
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  }
return "";
}
 
</script>
</head>
<body>
<div id="ChatBox" class="ChatBox">
Chat Aquí
</div>
 
<div id="ChatBoxConfig" class="ChatBoxConfig">
<!--Aquí botones para crear las cookies-->
<center><b>Chat Siempre:&nbsp;</b><input type="button" value="Visible" onclick="document.cookie='chatboxestado=on;expires=31 Dec 2020 12:00:00 GMT'" class="submit"> | <input type="button" value="Oculto" onclick="document.cookie='chatboxestado=off;expires=31 Dec 2020 12:00:00 GMT'" class="submit">
</center>
</div>
 
 
<script type="text/javascript">
 
//Aqui lee la cookie
function checkchatbox()
{
var chatboxcookie=getCookie("chatboxestado");
 
//Aqui la condicion, de que si la cookie tiene el valor de off, se ejecute esa funcion que ocultara el div delchat
if (chatboxcookie == "off")
    {
window.onload = function(){
muestra_oculta('ChatBox');
   }
  }
 
}
//Le agregué esto para que autoejecute el lector de cookies
window.onload = checkchatbox;
</script>
</body>
</html>


Notarán que mi codigo es algo pobre pero como ya dije, es la primera vez que intento ahcer algo en java y realmente no sé nada, saludos, y gracias de antemano por leer mi post.

P.D.: En mi sitio no puedo usar PHP ni JQuerry por que es un sistema que no lo acepta (ya he hecho scripts con php que es lo que masomenos se y jquery y por mas que intenté no me los aceptó, llevo casi un mes trabajando en esto)
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

Window.Onload en resultado de condición IF

Publicado por xve (1594 intervenciones) el 20/02/2014 16:20:38
Hola Vega, He probado tu código, y aqui es donde creo que tienes el problema:
1
2
3
4
5
6
7
8
9
10
11
12
function checkchatbox()
{
var chatboxcookie=getCookie("chatboxestado");
 
//Aqui la condicion, de que si la cookie tiene el valor de off, se ejecute esa funcion que ocultara el div delchat
if (chatboxcookie == "off")
    {
window.onload = function(){
muestra_oculta('ChatBox');
   }
  }
}

tendría que ser así:
1
2
3
4
5
6
7
8
9
function checkchatbox()
{
    var chatboxcookie=getCookie("chatboxestado");
    //Aqui la condicion, de que si la cookie tiene el valor de off, se ejecute esa funcion que ocultara el div delchat
    if (chatboxcookie == "off")
    {
        muestra_oculta('ChatBox');
    }
}

Lo he probado y parece que funciona... No se verle el sentido poner la funcion onload dentro de la función checkchatbox()

coméntanos, 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

Window.Onload en resultado de condición IF

Publicado por Vega (16 intervenciones) el 20/02/2014 23:19:32
Wow ya funciono, tienes razon no debe estar el windows.onload ahi si ya hay otro window.onload ejecutando la funcion, muchas gracias por la ayuda, saludos.
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