Foros del Web » Programando para Internet » Javascript »

Ayuda por favor! No se porque sucede esto

Estas en el tema de Ayuda por favor! No se porque sucede esto en el foro de Javascript en Foros del Web. Realmente no se que pasa, estoy usando una libreria de calendario llamada Epoch La libreria funciona perfectamente en todos los lugares donde la he utilizado.. ...
  #1 (permalink)  
Antiguo 23/02/2009, 05:54
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Desacuerdo Ayuda por favor! No se porque sucede esto

Realmente no se que pasa, estoy usando una libreria de calendario llamada Epoch
La libreria funciona perfectamente en todos los lugares donde la he utilizado..

recientemento inicie un sitio nuevo y copie los archivos de libreria, realize la llamada a la misma y bueno todo lo que hago siempre!....

El tema es que en IE no funciona!!!!
Pero funciona en todos mis otros sitios, con el mismo archivo js!

O sea no he modificado nada, es mas , he copiado todo tal cual!.... y asi todo no funciona!... (sera que tengo que rechazar el trabajo y es un mensaje de parte de IE (DIOS DE LA WEB) que tengo que escuchar?)

Miren, tengo ese codigo

Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title><?=$app['name'];?></title>
  5. <style type="text/css">
  6.     @import "css/datapickerstyles.css";
  7.     @import "css/general.css";
  8. </style>
  9. <script type="text/javascript" src="lib/js/core.js"></script>
  10. <script type="text/javascript" src="lib/js/misc.js"></script>
  11. <script type="text/javascript" src="lib/js/datapicker_class.js"></script>
  12. </head>
  13.  
  14. <body>
  15. <div id="panel">
  16.     <div id="top">
  17.         <div id="session_options">Sesi&oacute;n iniciada por <b><?=$_SESSION['usuario'];?></b>. (<a href="#">Modificar mis datos</a> - <a href="javascript:;" onClick="cerrarSesion();">Cerrar Sesi&oacute;n</a>)</div>
  18.     </div>
  19.     <div id="head">
  20.         <div id="app_name"><?=$app['name'];?></div>
  21.         <div id="menu_tags">
  22.             <ul>
  23. <?php
  24.  
  25. //*************************************
  26. //    MUESTRO LOS LINKS A LOS MODULOS
  27. //*************************************
  28.  
  29.     foreach( $modulos->read() as $modulo ) {
  30. ?>
  31.                 <li><a href="app.php?modulo=<?=$modulo;?>&token=<?=token::get();?>"><?=ucfirst(str_replace("-", " ", $modulo));?></a></li>
  32. <?php
  33.     }
  34. ?>
  35.             </ul>
  36.         </div>
  37.     </div>
  38.     <div id="center">
  39. <?php
  40. //CARGAR MODULO
  41. $modulos->load( $_GET['modulo'] );
  42. ?>
  43.     </div>
  44.     <div id="footer"><?=$app['name'];?> - Versi&oacute;n: <?=$app['version'];?> - &Uacute;ltima modificaci&oacute;n <?=$app['updated'];?><br />Desarrollado por <a target="_blank" href="<?=$app['creator_url'];?>"><?=$app['creator'];?></a></div>
  45. </div>
  46. </body>
  47. </html>

ahora bien, cuando cargo el modulo de alumnos que contiene la ejecucion del calendario no funciona...

El tema es que si borro todo el contenido del body, excepto el codigo php que carga el modulo el script funciona perfectamente...

El codigo de alumnos es el siguiente

Código html:
Ver original
  1. <table border="0" cellpadding="0" cellspacing="0">
  2. <tr>
  3.     <td align="left" valign="top">
  4.         <div class="ventana_grande">
  5.             <div class="titulo">Agregar/Modificar Alumno</div>
  6.             <form id="alu_form" action="" method="post">
  7.             <table class="table" border="0" cellpadding="0" cellspacing="0">
  8.                 <tr>
  9.                     <td>Nombre</td>
  10.                     <td><input type="text" id="alu_nom" /></td>
  11.                     <td>Apellido</td>
  12.                     <td><input type="text" id="alu_ape" /></td>
  13.                 </tr>
  14.                 <tr>
  15.                     <td>Documento</td>
  16.                     <td><input type="text" id="alu_doc" /></td>
  17.                     <td>Tipo de Documento</td>
  18.                     <td><input type="text" id="alu_id_doc_tipo" /></td>
  19.                 </tr>
  20.                 <tr>
  21.                     <td>Direcci&oacute;n</td>
  22.                     <td><input type="text" id="alu_dir" /></td>
  23.                     <td>Telefono</td>
  24.                     <td><input type="text" id="alu_tel" /></td>
  25.                 </tr>
  26.                 <tr>
  27.                     <td>Fecha de Nacimiento</td>
  28.                     <td><input type="text" id="alu_nac" name="alu_nac" readonly="readonly" /></td>
  29.                     <td>&nbsp;</td>
  30.                     <td>&nbsp;</td>
  31.                 </tr>
  32.                 <tr>
  33.                     <td colspan="4"><input type="submit" value="Guardar" /></td>
  34.                 </tr>
  35.             </table>
  36.             </form>
  37.         </div>
  38.         <div class="ventana_grande">
  39.             <div class="titulo">Alumnos</div>
  40.             <table width="100%" class="table" border="0" cellpadding="0" cellspacing="0">
  41.                 <tr>
  42.                     <td>Nombre</td>
  43.                     <td>Documento</td>
  44.                     <td>Borrar</td>
  45.                     <td>Gesti&oacute;n</td>
  46.                 </tr>
  47.                 <tr>
  48.                     <td>&nbsp;</td>
  49.                     <td>&nbsp;</td>
  50.                     <td>&nbsp;</td>
  51.                     <td>&nbsp;</td>
  52.                 </tr>
  53.             </table>
  54.         </div>
  55.     </td>
  56.     <td width="20" align="left">&nbsp;</td>
  57.     <td align="left" valign="top">&nbsp;</td>
  58. </tr>
  59. <script type="text/javascript">
  60. window.onload = function()
  61. {
  62.     datapicker = new Epoch('Fecha','popup',document.getElementById('alu_nac'), false);
  63. }

Ahora, no entiendo porque puede pasar esto, porque no veo errores html en el body!

El error que tira la clase esta en estas dos funciones

Código javascript:
Ver original
  1. Epoch.prototype.getTop = function (element) //PRIVATE: returns the absolute Top value of element, in pixels
  2. {
  3.     var oNode = element;
  4.     var iTop = 0;
  5.    
  6.     while(oNode.tagName != 'BODY') {
  7.         iTop += oNode.offsetTop;
  8.         oNode = oNode.offsetParent;
  9.     }
  10.     return iTop;
  11. };
  12. //-----------------------------------------------------------------------------
  13. Epoch.prototype.getLeft = function (element) //PRIVATE: returns the absolute Left value of element, in pixels
  14. {
  15.     var oNode = element;
  16.     var iLeft = 0;
  17.      
  18.     while(oNode.tagName != 'BODY') {
  19.         iLeft += oNode.offsetLeft;
  20.         oNode = oNode.offsetParent;
  21.     }
  22.    
  23.     return iLeft;
  24. };

Ahora bien, no entiendo porque cuando realiza ese bucle se saltea el body! (esta comprobacion la hice con un alert)

y se saltea siempre una o dos etiquetas ...

Quiero decir, si yo tengo un armado de este tipo

<html><body><div><table><tr><td></td></tr></table></div></body></html>
el bucle lee el TD, el TABLE y el HTML!

Bueno espero que me puedan dar una mano! porque me estoy volviendo loco hace dias que estoy con esto! y lo que mas me estresa es que en realidad no hay errores en javascript, porque hasta ahora ha funcionado en todos los navegadores de todos los sitios que he hecho de la misma forma que este !
  #2 (permalink)  
Antiguo 23/02/2009, 12:35
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Ayuda por favor! No se porque sucede esto

bueno gracias a los que me ayudaron

encontre una solucion (aunque todavia no explico porque todas las otras veces que lo use funciono normalmente y esta vez no funciono jaja, el tema es que bueno, les dejo la solucion para los que usen esa libreria y tengan alguna vez un problema con la misma


simplemente agarre el bucle que se encuentra en las funciones getTop y getLeft y en lugar de hacer

while(oNode.tagName != 'BODY') {

hago

while(oNode.offsetParent) {


Saludos!
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 14:07.