Foros del Web » Programando para Internet » Javascript »

problema con javascript en pagina cargada por ajax!

Estas en el tema de problema con javascript en pagina cargada por ajax! en el foro de Javascript en Foros del Web. Buenas, este es un problema recurrente por lo que he visto en la web... el tema es que he probado todo y no me va... ...
  #1 (permalink)  
Antiguo 15/10/2012, 04:45
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Pregunta problema con javascript en pagina cargada por ajax!

Buenas, este es un problema recurrente por lo que he visto en la web... el tema es que he probado todo y no me va...

tengo una pagina que al ser cargada por AJAX no me interpreta los javascript.

pagina.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.  
  4. <title>Modal Popup Demo</title>
  5. <script language="javascript" src="jquery.js"></script>
  6. <script language="javascript" src="modal.popup.js"></script>
  7.  
  8. <script language="javascript">
  9.     $(document).ready(function() {  
  10.         //Change these values to style your modal popup
  11.         var align = 'center';                                   //Valid values; left, right, center
  12.         var top = 100;                                          //Use an integer (in pixels)
  13.         var width = 800;                                        //Use an integer (in pixels)
  14.         var padding = 10;                                       //Use an integer (in pixels)
  15.         var backgroundColor = '#FFF';                       //Use any hex code
  16.         var source = 'demo.php';                                //Refer to any page on your server, external pages are not valid e.g. http://www.google.co.uk
  17.         var borderColor = '#FFF';                           //Use any hex code
  18.         var borderWeight = 4;                                   //Use an integer (in pixels)
  19.         var borderRadius = 0;                                   //Use an integer (in pixels)
  20.         var fadeOutTime = 300;                                  //Use any integer, 0 = no fade
  21.         var disableColor = '#000';                          //Use any hex code
  22.         var disableOpacity = 85;                                //Valid range 0-100
  23.         var loadingImage = 'images/lightbox-ico-loading.gif';       //Use relative path from this page
  24.            
  25.         //This method initialises the modal popup
  26.         $(".modal").click(function() {
  27.             modalPopup(align, top, width, padding, disableColor, disableOpacity, backgroundColor, borderColor, borderWeight, borderRadius, fadeOutTime, source, loadingImage);
  28.         });
  29.        
  30.         //This method hides the popup when the escape key is pressed
  31.         $(document).keyup(function(e) {
  32.             if (e.keyCode == 27) {
  33.                 closePopup(fadeOutTime);
  34.             }
  35.         });
  36.     });
  37. </script>
  38.  
  39. </head>
  40.  
  41. <body style="margin:20px;">
  42.  
  43. <h1>jQuery Popup Demo</h1>
  44.  
  45. <a class="modal" href="javascript:void(0);"><img src="img/attentionTab_death.png"/></a><br /><br />
  46. <a class="modal" href="javascript:void(0);">Demo</a><br/><br/>
  47. <input type="submit" class="modal" value="Demo"/>
  48.  
  49. </body>
  50. </html>

y en la pagina 2:

demo.php

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <script>alert("joder");</script>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.         <title>Tiny Scrollbar: A lightweight jQuery plugin</title>
  6.         <link rel="stylesheet" href="css/website.css" type="text/css" media="screen"/>
  7.        
  8.         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  9.         <script type="text/javascript" src="js/jquery.tinyscrollbar.min.js"></script>
  10.         <script type="text/javascript">
  11.             $(document).ready(function(){
  12.                 $('#scrollbar1').tinyscrollbar();  
  13.             });
  14.         </script>
  15.        
  16.     </head>
  17.    
  18.     <body>
  19.         <img src="imagen.jpg"/>
  20.        
  21.         <div id="scrollbar1">
  22.             <div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>
  23.             <div class="viewport">
  24.                 <div class="overview">
  25.                     <h3>Magnis dis parturient montes</h3>
  26.                     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut vitae velit at velit pretium sodales. Maecenas egestas imperdiet mauris, vel elementum turpis iaculis eu. Duis egestas augue quis ante ornare eu tincidunt magna interdum. Vestibulum posuere risus non ipsum sollicitudin quis viverra ante feugiat. Pellentesque non faucibus lorem. Nunc tincidunt diam nec risus ornare quis porttitor enim pretium. Ut adipiscing tempor massa, a ullamcorper massa bibendum at. Suspendisse potenti. In vestibulum enim orci, nec consequat turpis. Suspendisse sit amet tellus a quam volutpat porta. Mauris ornare augue ut diam tincidunt elementum. Vivamus commodo dapibus est, a gravida lorem pharetra eu. Maecenas ultrices cursus tellus sed congue. Cras nec nulla erat.</p>
  27.                     <p>Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque eget mauris libero. Nulla sit amet felis in sem posuere laoreet ut quis elit. Aenean mauris massa, pretium non bibendum eget, elementum sed nibh. Nulla ac felis et purus adipiscing rutrum. Pellentesque a bibendum sapien. Vivamus erat quam, gravida sed ultricies ac, scelerisque sed velit. Integer mollis urna sit amet ligula aliquam ac sodales arcu euismod. Fusce fermentum augue in nulla cursus non fermentum lorem semper. Quisque eu auctor lacus. Donec justo justo, mollis vel tempor vitae, consequat eget velit.</p>
  28.                    
  29.                 </div>
  30.             </div>
  31.         </div> 
  32.     </body>
  33. </html>


Como puedo hacer para que me interprete los javascript de la pagina cargada con AJAX...es que estoy bloqueado he visto otros posts en este foro y en google pero no consigo hacerlo funcionar, si alguien tiene conocimientos de esto...AYUDAME PORFAVOR!!!!!!

muchas gracias!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #2 (permalink)  
Antiguo 15/10/2012, 05:28
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: problema con javascript en pagina cargada por ajax!

Asi
http://foros.emprear.com/ajax/html-c.../deportes.html

Analizá la script cargarAjax.js y vas a ver una segunda función llamada cargarRecursos(), esa es la que usas para cargar los css y js asociados a la url que cargas a través de Ajax

Mirá el ejemplo (tres primeros botones)

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 15/10/2012, 06:50
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: problema con javascript en pagina cargada por ajax!

Ajax sólo te devuelve texto. Lo que haya en el texto, al javascript le da igual. Es decir, si por ajax estás recogiendo scripts de javascripts, éstos no se ejecutarán.

Para forzar a que se ejecuten, hay una peligrosa función llamada EVAL(), que recibe como único argumento, una cadena de texto. Si dicha cadena es código válido de javascript, se ejecutará. Si no lo es, dará un error.

Asi que tu llamada ajax deverá devolver un JSON comuesto por dos cadenas: La primera cadena contendrá el HTML que pegarás en algún sitio; la segunda cadena contendrá los scripts de javascript que quieres ejecutar. Y sobre esa segunda cadena hacer el EVAL.

Pero el uso del EVAl dicen que es peligroso, y no está recomendado por nadie; asi que lo mejor es meter esos scripts en la página principal, y utilizarlos cuando tu petición AJAX responda.
  #4 (permalink)  
Antiguo 15/10/2012, 06:55
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: problema con javascript en pagina cargada por ajax!

Cita:
Iniciado por marlanga Ver Mensaje
Ajax sólo te devuelve texto. Lo que haya en el texto, al javascript le da igual. Es decir, si por ajax estás recogiendo scripts de javascripts, éstos no se ejecutarán.

Para forzar a que se ejecuten, hay una peligrosa función llamada EVAL(), que recibe como único argumento, una cadena de texto. Si dicha cadena es código válido de javascript, se ejecutará. Si no lo es, dará un error.

Asi que tu llamada ajax deverá devolver un JSON comuesto por dos cadenas: La primera cadena contendrá el HTML que pegarás en algún sitio; la segunda cadena contendrá los scripts de javascript que quieres ejecutar. Y sobre esa segunda cadena hacer el EVAL.

Pero el uso del EVAl dicen que es peligroso, y no está recomendado por nadie; asi que lo mejor es meter esos scripts en la página principal, y utilizarlos cuando tu petición AJAX responda.
Código Javascript:
Ver original
  1. function cargarRecursos(){
  2.                     if(!document.getElementById){
  3.                         return;
  4.                         }
  5.                         var i = 0;for(i=0; i<arguments.length; i++){
  6.                             var archivo=arguments[i];var archivoref="";
  7.                             if(cargarObjetos.indexOf(archivo)==-1){
  8.                                 if(archivo.indexOf(".js")!=-1){
  9.                                     archivoref=document.createElement('script');archivoref.setAttribute("type","text/javascript");
  10.                                     archivoref.setAttribute("src", archivo);
  11.                                     }else if(archivo.indexOf(".css")!=-1){
  12.                                         archivoref=document.createElement("link");
  13.                                         archivoref.setAttribute("rel", "stylesheet");
  14.                                         archivoref.setAttribute("type", "text/css");
  15.                                         archivoref.setAttribute("href", archivo);
  16.                                         }
  17.                                         }if(archivoref!=""){
  18.                                             document.getElementsByTagName("head").item(0).appendChild(archivoref);
  19.                                             cargarObjetos+=archivo+" ";
  20.                                             }
  21.                                         }
  22.                                     }

que es la función de mi ejemplo, no requiere el uso de eval, y permitirá cargar dichos recursos en la medida que se necesiten

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 15/10/2012, 06:59
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: problema con javascript en pagina cargada por ajax!

Anda, no sabía que el createElement cargara scripts ni CSS. A partir de ahora, lo usaré.
  #6 (permalink)  
Antiguo 15/10/2012, 08:37
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Respuesta: problema con javascript en pagina cargada por ajax!

Hola buenas, muchas gracias por contestar....

perdonaz mi torpeza pero sigue sin funcionarme... explico lo que estoy haciendo:

desde la pagina.php lanzo un "popup" usando jquery a modo de lightbox, bien en ese "popup" no me deja ejecutar codigo javascript...e implementando lo indicado arriba sigue sin funcionar!

Me podriais dar alguna pista mas... es que estoy bloqueado
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #7 (permalink)  
Antiguo 15/10/2012, 08:38
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Respuesta: problema con javascript en pagina cargada por ajax!

esto es lo que he hecho:

pagina.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.  
  4. <title>Modal Popup Demo</title>
  5. <script language="javascript" src="jquery.js"></script>
  6. <script language="javascript" src="modal.popup.js"></script>
  7. <script type="text/javascript" src="js/cargaAjax.js"></script>
  8.  
  9. <script language="javascript">
  10.     $(document).ready(function() {  
  11.         //Change these values to style your modal popup
  12.         var align = 'center';                                   //Valid values; left, right, center
  13.         var top = 100;                                          //Use an integer (in pixels)
  14.         var width = 800;                                        //Use an integer (in pixels)
  15.         var padding = 10;                                       //Use an integer (in pixels)
  16.         var backgroundColor = '#FFF';                       //Use any hex code
  17.         var source = 'demo.php';                                //Refer to any page on your server, external pages are not valid e.g. http://www.google.co.uk
  18.         var borderColor = '#FFF';                           //Use any hex code
  19.         var borderWeight = 4;                                   //Use an integer (in pixels)
  20.         var borderRadius = 0;                                   //Use an integer (in pixels)
  21.         var fadeOutTime = 300;                                  //Use any integer, 0 = no fade
  22.         var disableColor = '#000';                          //Use any hex code
  23.         var disableOpacity = 85;                                //Valid range 0-100
  24.         var loadingImage = 'images/lightbox-ico-loading.gif';       //Use relative path from this page
  25.            
  26.         //This method initialises the modal popup
  27.         $(".modal").click(function() {
  28.             modalPopup(align, top, width, padding, disableColor, disableOpacity, backgroundColor, borderColor, borderWeight, borderRadius, fadeOutTime, source, loadingImage);
  29.         });
  30.        
  31.         //This method hides the popup when the escape key is pressed
  32.         $(document).keyup(function(e) {
  33.             if (e.keyCode == 27) {
  34.                 closePopup(fadeOutTime);
  35.             }
  36.         });
  37.     });
  38. </script>
  39.  
  40. </head>
  41.  
  42. <body style="margin:20px;">
  43.  
  44. <h1>jQuery Popup Demo</h1>
  45. <a class="modal" href="javascript:void(0);" onclick="cargarRecursos('unafuncion.js'); return false;">Demo</a><br/><br/>
  46.  
  47. </body>
  48. </html>
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #8 (permalink)  
Antiguo 15/10/2012, 08:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: problema con javascript en pagina cargada por ajax!

Hola:

Cita:
Iniciado por marlanga Ver Mensaje
Ajax sólo te devuelve texto...
Los objetos Ajax devuelven datos responseText y responseXML... o sea que también se puede usar el DOM en una estructura XML (la que particularmente prefiero usar)...

Y sobre la pregunta concreta, si se rescata la respuesta con responseText, es claro que lo que devuelve es un texto...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 15/10/2012, 08:55
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Respuesta: problema con javascript en pagina cargada por ajax!

Hola caricatos gracias por responder.

podrias ayudarme a entender como hay que hacer para que dicho documento lea los javascripts? Es que no soy capaz de hacerlo funcionar...
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #10 (permalink)  
Antiguo 15/10/2012, 08:56
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Respuesta: problema con javascript en pagina cargada por ajax!

si pudiese ver un ejemplo sencillo, el que me ha mostrado emprear no me ha funcionado, he especificado mas arriba como he hecho para implementarlo....
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #11 (permalink)  
Antiguo 15/10/2012, 10:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: problema con javascript en pagina cargada por ajax!

Cita:
Iniciado por protoameeba Ver Mensaje
si pudiese ver un ejemplo sencillo, el que me ha mostrado emprear no me ha funcionado, he especificado mas arriba como he hecho para implementarlo....
No he usado plugin en particular. Pero hay algo que no está claro, en dónde está el contenido de lo que se carga en el modal?
En el código no lo veo definido, y si es una página externa, tampoco, Además, porque pones
onclick="cargarRecursos('unafuncion.js'); ?
unafunción.js es solo aplicable a mi ejemplo
Por último, ese javascript que decís no se ejecuta, ¿usa tambíen jQuery?
Las veces que he usado algo parecido, he usado este
http://www.ericmmartin.com/projects/simplemodal/
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 15/10/2012, 21:49
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 19 años, 2 meses
Puntos: 3
Respuesta: problema con javascript en pagina cargada por ajax!

Hola Emprear,


este es el .js que falta:

modal.popup.js

Código Javascript:
Ver original
  1. function modalPopup(align, top, width, padding, disableColor, disableOpacity, backgroundColor, borderColor, borderWeight, borderRadius, fadeOutTime, url, loadingImage){
  2.  
  3.     var containerid = "innerModalPopupDiv";
  4.        
  5.     var popupDiv = document.createElement('div');
  6.     var popupMessage = document.createElement('div');
  7.     var blockDiv = document.createElement('div');
  8.    
  9.     popupDiv.setAttribute('id', 'outerModalPopupDiv');
  10.     popupDiv.setAttribute('class', 'outerModalPopupDiv');
  11.    
  12.     popupMessage.setAttribute('id', 'innerModalPopupDiv');
  13.     popupMessage.setAttribute('class', 'innerModalPopupDiv');
  14.    
  15.     blockDiv.setAttribute('id', 'blockModalPopupDiv');
  16.     blockDiv.setAttribute('class', 'blockModalPopupDiv');
  17.     blockDiv.setAttribute('onClick', 'closePopup(' + fadeOutTime + ')');
  18.    
  19.     document.body.appendChild(popupDiv);
  20.     popupDiv.appendChild(popupMessage);
  21.     document.body.appendChild(blockDiv);
  22.    
  23.     if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
  24.      var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
  25.        if(ieversion>6) {
  26.          getScrollHeight(top);
  27.        }
  28.     } else {
  29.       getScrollHeight(top);
  30.     }
  31.    
  32.     document.getElementById('outerModalPopupDiv').style.display='block';
  33.     document.getElementById('outerModalPopupDiv').style.width = width + 'px';
  34.     document.getElementById('outerModalPopupDiv').style.padding = borderWeight + 'px';
  35.     document.getElementById('outerModalPopupDiv').style.background = borderColor;
  36.     document.getElementById('outerModalPopupDiv').style.borderRadius = borderRadius + 'px';
  37.     document.getElementById('outerModalPopupDiv').style.MozBorderRadius = borderRadius + 'px';
  38.     document.getElementById('outerModalPopupDiv').style.WebkitBorderRadius = borderRadius + 'px';
  39.     document.getElementById('outerModalPopupDiv').style.borderWidth = 0 + 'px';
  40.     document.getElementById('outerModalPopupDiv').style.position = 'absolute';
  41.     document.getElementById('outerModalPopupDiv').style.zIndex = 100;
  42.    
  43.     document.getElementById('innerModalPopupDiv').style.padding = padding + 'px';
  44.     document.getElementById('innerModalPopupDiv').style.background = backgroundColor;
  45.     document.getElementById('innerModalPopupDiv').style.borderRadius = (borderRadius - 3) + 'px';
  46.     document.getElementById('innerModalPopupDiv').style.MozBorderRadius = (borderRadius - 3) + 'px';
  47.     document.getElementById('innerModalPopupDiv').style.WebkitBorderRadius = (borderRadius - 3) + 'px';
  48.    
  49.     document.getElementById('blockModalPopupDiv').style.width = 100 + '%';
  50.     document.getElementById('blockModalPopupDiv').style.border = 0 + 'px';
  51.     document.getElementById('blockModalPopupDiv').style.padding = 0 + 'px';
  52.     document.getElementById('blockModalPopupDiv').style.margin = 0 + 'px';
  53.     document.getElementById('blockModalPopupDiv').style.background = disableColor;
  54.     document.getElementById('blockModalPopupDiv').style.opacity = (disableOpacity / 100);
  55.     document.getElementById('blockModalPopupDiv').style.filter = 'alpha(Opacity=' + disableOpacity + ')';
  56.     document.getElementById('blockModalPopupDiv').style.zIndex = 99;
  57.     document.getElementById('blockModalPopupDiv').style.position = 'fixed';
  58.     document.getElementById('blockModalPopupDiv').style.top = 0 + 'px';
  59.     document.getElementById('blockModalPopupDiv').style.left = 0 + 'px';
  60.    
  61.     if(align=="center") {
  62.         document.getElementById('outerModalPopupDiv').style.marginLeft = (-1 * (width / 2)) + 'px';
  63.         document.getElementById('outerModalPopupDiv').style.left = 50 + '%';
  64.     } else if(align=="left") {
  65.         document.getElementById('outerModalPopupDiv').style.marginLeft = 0 + 'px';
  66.         document.getElementById('outerModalPopupDiv').style.left = 10 + 'px';
  67.     } else if(align=="right") {
  68.         document.getElementById('outerModalPopupDiv').style.marginRight = 0 + 'px';
  69.         document.getElementById('outerModalPopupDiv').style.right = 10 + 'px';
  70.     } else {
  71.         document.getElementById('outerModalPopupDiv').style.marginLeft = (-1 * (width / 2)) + 'px';
  72.         document.getElementById('outerModalPopupDiv').style.left = 50 + '%';
  73.     }
  74.    
  75.     blockPage();
  76.  
  77.     var page_request = false;
  78.     if (window.XMLHttpRequest) {
  79.         page_request = new XMLHttpRequest();
  80.     } else if (window.ActiveXObject) {
  81.         try {
  82.             page_request = new ActiveXObject("Msxml2.XMLHTTP");
  83.         } catch (e) {
  84.             try {
  85.                 page_request = new ActiveXObject("Microsoft.XMLHTTP");
  86.             } catch (e) { }
  87.         }
  88.     } else {
  89.         return false;
  90.     }
  91.  
  92.  
  93.     page_request.onreadystatechange=function(){
  94.         if((url.search(/.jpg/i)==-1) && (url.search(/.jpeg/i)==-1) && (url.search(/.gif/i)==-1) && (url.search(/.png/i)==-1) && (url.search(/.bmp/i)==-1)) {
  95.             pageloader(page_request, containerid, loadingImage);
  96.         } else {
  97.             imageloader(url, containerid, loadingImage);
  98.         }
  99.     }
  100.  
  101.     page_request.open('GET', url, true);
  102.     page_request.send(null);
  103.    
  104. }
  105.  
  106. function pageloader(page_request, containerid, loadingImage){
  107.    
  108.     document.getElementById(containerid).innerHTML = '<div align="center"><img src="' + loadingImage + '" border="0" /></div>';
  109.    
  110.     if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
  111.         document.getElementById(containerid).innerHTML=page_request.responseText;
  112.     }
  113.    
  114. }
  115.  
  116. function imageloader(url, containerid, loadingImage) {
  117.    
  118.     document.getElementById(containerid).innerHTML = '<div align="center"><img src="' + loadingImage + '" border="0" /></div>';
  119.     document.getElementById(containerid).innerHTML='<div align="center"><img src="' + url + '" border="0" /></div>';
  120.    
  121. }
  122.  
  123. function blockPage() {
  124.    
  125.     var blockdiv = document.getElementById('blockModalPopupDiv');
  126.     var height = screen.height;
  127.    
  128.     blockdiv.style.height = height + 'px';
  129.     blockdiv.style.display = 'block';
  130.  
  131. }
  132.  
  133. function getScrollHeight(top) {
  134.    
  135.    var h = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
  136.            
  137.     if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
  138.        
  139.         var ieversion=new Number(RegExp.$1);
  140.        
  141.         if(ieversion>6) {
  142.             document.getElementById('outerModalPopupDiv').style.top = h + top + 'px';
  143.         } else {
  144.             document.getElementById('outerModalPopupDiv').style.top = top + 'px';
  145.         }
  146.        
  147.     } else {
  148.         document.getElementById('outerModalPopupDiv').style.top = h + top + 'px';
  149.     }
  150.    
  151. }
  152.  
  153. function closePopup(fadeOutTime) {
  154.    
  155.     fade('outerModalPopupDiv', fadeOutTime);
  156.     document.getElementById('blockModalPopupDiv').style.display='none';
  157.  
  158. }
  159.  
  160. function fade(id, fadeOutTime) {
  161.    
  162.     var el = document.getElementById(id);
  163.    
  164.     if(el == null) {
  165.         return;
  166.     }
  167.    
  168.     if(el.FadeState == null) {
  169.        
  170.         if(el.style.opacity == null || el.style.opacity == '' || el.style.opacity == '1') {
  171.             el.FadeState = 2;
  172.         } else {
  173.             el.FadeState = -2;
  174.         }
  175.    
  176.     }
  177.    
  178.     if(el.FadeState == 1 || el.FadeState == -1) {
  179.        
  180.         el.FadeState = el.FadeState == 1 ? -1 : 1;
  181.         el.fadeTimeLeft = fadeOutTime - el.fadeTimeLeft;
  182.        
  183.     } else {
  184.        
  185.         el.FadeState = el.FadeState == 2 ? -1 : 1;
  186.         el.fadeTimeLeft = fadeOutTime;
  187.         setTimeout("animateFade(" + new Date().getTime() + ",'" + id + "','" + fadeOutTime + "')", 33);
  188.    
  189.     }  
  190.  
  191. }
  192.  
  193. function animateFade(lastTick, id, fadeOutTime) {
  194.      
  195.     var currentTick = new Date().getTime();
  196.     var totalTicks = currentTick - lastTick;
  197.    
  198.     var el = document.getElementById(id);
  199.    
  200.     if(el.fadeTimeLeft <= totalTicks) {
  201.    
  202.         el.style.opacity = el.FadeState == 1 ? '1' : '0';
  203.         el.style.filter = 'alpha(opacity = ' + (el.FadeState == 1 ? '100' : '0') + ')';
  204.         el.FadeState = el.FadeState == 1 ? 2 : -2;
  205.         document.body.removeChild(el);
  206.         return;
  207.    
  208.     }
  209.    
  210.     el.fadeTimeLeft -= totalTicks;
  211.     var newOpVal = el.fadeTimeLeft / fadeOutTime;
  212.    
  213.     if(el.FadeState == 1) {
  214.         newOpVal = 1 - newOpVal;
  215.     }
  216.    
  217.     el.style.opacity = newOpVal;
  218.     el.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  219.    
  220.     setTimeout("animateFade(" + currentTick + ",'" + id + "','" + fadeOutTime + "')", 33);
  221.  
  222. }

no se como implementar el codigo para que finalmente se ejecuten los jvascripts... ahora lo estoy hahciendo por iframe, pero me gustaria saber como hay que hacer para un futuro....

he puesto onclick="cargarRecursos('unafuncion.js'); porque he creado un .js con mis funciones dentro en un boceto rapido... para probarlo.

Y el javascript que se ejecuta es un alert sencillo, aunque despues si me gustaria hacer algo con jquery como un scroll...


Como estoy bastante perdido y no me aclaro, lo dicho, lo he montado por iframe, porque tenia prisa Y si funciona todo... pero el saber no ocupa lugar, si me puedes iluminar, te lo agradeceria, un saludo!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....

Etiquetas: ajax
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 18:46.