Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] duda con compatibilidades

Estas en el tema de duda con compatibilidades en el foro de Frameworks JS en Foros del Web. Hola buenas, tengo el siguiente código en javascript @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function close_alert ( id ) {         ...
  #1 (permalink)  
Antiguo 31/01/2014, 12:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
duda con compatibilidades

Hola buenas, tengo el siguiente código en javascript

Código Javascript:
Ver original
  1. function close_alert(id) {
  2.    
  3.     var alert_div = document.getElementById('alert_container_'+id+'');
  4.     var cookie_name = "YRO_alert_id_" + id;
  5.     $(alert_div).fadeOut(400);
  6.    
  7.     document.cookie = ""+cookie_name+"="+ id +"; expires=Thu, 1 Dec 2015 12:00:00 GMT";
  8.  
  9. }

y este en HTML

Código HTML:
Ver original
  1. <div id =\"alert_container_$alert_id\"  style=\"overflow: hidden; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; box-shadow: 0px 0px 0px 1px #5A5D63;-webkit-box-shadow: 0px 0px 0px 1px #5A5D63;border: 1px solid #000;\">
  2.     <table class=\"alert alert-".$alert_class."\">
  3.         <tr>
  4.             <td class =\"alert_text\" >
  5.                     ".$alert_text."
  6.                 </td>
  7.                 <td>
  8.                 <button style=\"float:right; outline:0; margin-right:8px;\" class=\"btn btn-$alert_class\">
  9.                     <a href=\"#\" onclick=\"close_alert($alert_id)\" title=\"".$LNG['alert_close']."\">
  10.                         <i class=\"icon-remove icon-white\"></i>
  11.                     </a>
  12.                 </button>
  13.                 </td>
  14.         </tr>
  15.     </table>
  16. </div>

Bueno la funcion principal es que si se clica el boton, el div se esconde con un efecto de fadeOut y se añade la cookie para que este no se muestre otra vez.

la cosa es que en chrome va perfectamente, pero en mozilla e internet explorer el boton no hace nada.. Alguna idea? es este el mejor metodo para este "sistema de alertas"?

PD: no os preocupeis por el CSS del style.

Última edición por Doch; 31/01/2014 a las 12:37 Razón: error identacion
  #2 (permalink)  
Antiguo 31/01/2014, 13:50
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

analizando un poco con mozilla, avisa de que al al llamar a la funcion con el button, se le pasa una cadena vacia, sin embargo se le pasa $alert_id.. (Cadena vacía pasada a getElementById())

Última edición por Doch; 31/01/2014 a las 16:21
  #3 (permalink)  
Antiguo 01/02/2014, 06:52
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

ni idea nadie?
  #4 (permalink)  
Antiguo 01/02/2014, 07:05
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: duda con compatibilidades

Como no podemos ver las variables de PHP...
  #5 (permalink)  
Antiguo 01/02/2014, 08:02
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

la variable "$alert_id" es seguro que es un numero entero, ya que es un ID que ademas se crea sola al insertar el registro en la base de datos.

$alert_class, no tiene nada que ver con el problema pero es un string que puede ser primary,danger,alert para hacer el tipico globo de alerta de bootstrap.

$alert_text, no es mas que el texto que tiene que enseñar.

Última edición por Doch; 01/02/2014 a las 08:46
  #6 (permalink)  
Antiguo 01/02/2014, 10:04
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

segun estoy viendo por internet, nadie sabe resolver el problema o incluso dicen que es problema de firefox, porque en chrome funciona, en IE tampoco funciona ( para variar ) alguien sabria una forma diferente de como hacerlo?

yo ahora mismo lo tengo como:

php mira la base de datos y recoje las alertas(id,texto,clase...), luego mira las cookies para mostar solo las alertas que no han sido cerradas antes, estas se muestran con un id en el div diferente cambiando solo el valor del final por ejemplo : alerta_1, alerta_2... ademas tengo el boton de cerrado que onClick llama a la funcion javascript pasandole como parametro la id del alert.

esta funcion recibe el parametro y busca el id que tiene el numero del parametro al final ej: alert_2 y lo que haces es un fadeOut para quitarlo de pantalla y hace un set de una cookie para marcarlo como visto y no se muestre la proxima vez que se cargue la web

el problema tiene origen al llamar desde html la funcion javascript pasandole el parametro que marca como error Cadena vacía pasada a getElementById().

A ver si alguien tiene otro metodo diferente, se que esto es posible de hacer.. la cosa es como




ejemplo de script enlace si bajais un poco os aparecera la barra, si la cerrais se os añadira una cookie llamada "awesomeBarDisabled" y no os aparacera la barra si refrescais la web

Última edición por Doch; 01/02/2014 a las 11:27
  #7 (permalink)  
Antiguo 05/02/2014, 17:18
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: duda con compatibilidades

Sin ver más ayá ni leer tu segundo comentario, el problema es esto:

Código HTML:
Ver original
  1. alert_container_$alert_id

Tienes que concatenar $alert_id.


Saludos
__________________
Grupo Telegram Docker en Español
  #8 (permalink)  
Antiguo 10/02/2014, 09:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

Esa opcion ya la probe, de hecho al cargar la pagina se muestra correctamente "alert_container_1", el problema esta al llamar a la funcion en el onClick

Código PHP:
$TMPL['alerts_divs'] = $TMPL['alerts_divs'] . "<div id =\"alert_container_".$alert_id."\"  style=\"overflow: hidden; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; box-shadow: 0px 0px 0px 1px #5A5D63;-webkit-box-shadow: 0px 0px 0px 1px #5A5D63;border: 1px solid #000; margin-bottom:15px;\">
    <table class=\"alert alert-"
.$alert_class."\">
        <tr>
            <td class =\"alert_text\" >
                    "
.$alert_text."
                </td> 
                <td>
                <button style=\"float:right; outline:0; margin-right:8px;\" class=\"btn btn-$alert_class\">
                    <a href=\"#\" onClick=\"close_alert('"
.$alert_id."');\" title=\"".$LNG['alert_close']."\">
                        <i class=\"icon-remove icon-white\"></i>
                    </a>
                </button>
                </td>
        </tr>
    </table>
</div>"

  #9 (permalink)  
Antiguo 10/02/2014, 09:41
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: duda con compatibilidades

las soluciones tan tontas de ponen negro..

Código PHP:
<button style="float:right; outline:0; margin-right:8px;\" class=\"btn btn-$alert_class\">
                    <a href=\"#\" onClick=\"close_alert('"
.$alert_id."');\" title=\"".$LNG['alert_close']."\">
                        <i class=\"icon-remove icon-white\"></i> 
cambiamos a

Código PHP:
<button href="#\" onClick=\"close_alert('".$alert_id."');\" style=\"float:right; outline:0; margin-right:8px;\" class=\"btn btn-$alert_class\">
                    <a title=\""
.$LNG['alert_close']."\">
                        <i class=\"icon-remove icon-white\"></i> 
EDIT: me he dado cuenta que en el 2º bloque de PHP el el href, la primera comilla no esta escapada, aunque de hecho lo esta pero por algun motivo no se muestra

Última edición por Doch; 10/02/2014 a las 09:46

Etiquetas: funcion, html, javascript
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 03:38.