Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Response (http://www.forosdelweb.com/f127/como-ejecutar-cod-js-abrir-scripts-src-d-pag-obtenida-con-ajax-response-571659/)

vansert 01/04/2008 21:58

Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Response
 
Estimados:

Referente al tema en cuestión he encontrado algunos post e info, pero no logro resolver la problematica.

Tengo 2 páginas.

PAGINA1: Es la principal, tiene 3 radio buttons que indican los 3 tipos de cuentas. Al hacer click en alguno de estos, llama a un funcion que ejecuta Ajax, abre pagina 2 y recibe el response de pagina 2 y lo tira a una capa "respuesta".

PAGINA2: Esta pagina recibe el tipo de cuenta seleccionado, hace la consulta a la DB y lista la consulta con los registros editables. Para hacerlos editables uso en PAGINA2 librerias prototype y scriptaculous, que hacen los campos del registros editables, y si la pagina la pruebo sola, actualiza en la DB, osea se hace bien el update.


Todo esto funciona bien, es una funcionalidad super buena....
PERO...
PROBLEMA:
La PAGINA2 tiene tag <scripts> SRC que abren el prototype y scriptaculous. Además tiene código Javascript adicional para hacer las celadas editables. Estos 2 códigos Javascript no se logran ejecutar en el navegador como código JavaScript :(
Conceptualmente entiendo porque no funciona....pero se de que hay funciones creadas y de programadores que lo han logrado realizar. Hasta el momento lo he intentado pero no lo logro resolver.
Que rabia! el código lo obtengo con el responseText ...solo falta que se ejecute!!! :S


Por Favor una ayuda, cualquier aporte se les agradece... :-):-)

Saludos!

vansert 02/04/2008 06:44

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Hola!

Please alguien me pueda ayudar...estoy algo complicado...
Quiero ejecutar los JS obtenidos del response...

graxias!!

GatorV 02/04/2008 09:07

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Hola Vansert,

Revisa este link: http://www.forosdelweb.com/f77/howto...e-ajax-510438/

Saludos.

vansert 02/04/2008 11:24

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Hola GatorV

Ese post ya lo revise ayer y me funciono bastante bien.
Lo que no logro aun es poder ejecutar el código de los <scripts> embebidos. Y es fundamental que logre incluir scriptaculous y prototype ya que estoy haciendo una grilla editable (y funciona bien esta pagian sola) . Necesito resolver esto :(

Gracias y saludos!

Los embebidos:
Código:

<script type="text/javascript" src="librerias/scriptaculous/prototype.js"></script>
<script type="text/javascript" src="librerias/scriptaculous/scriptaculous.js"></script>

Siguiendo la linea del post q me recomendaste uso el script creado por MaBoRaK:

Código:

<script>
var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
        /**
        * Eval script fragment
        * @return String
        */
        String.prototype.evalScript = function()
        {
                return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
        };
        /**
        * strip script fragment
        * @return String
        */
        String.prototype.stripScript = function()
        {
                return this.replace(new RegExp(tagScript, 'img'), '');
        };
        /**
        * extract script fragment
        * @return String
        */
        String.prototype.extractScript = function()
        {
                var matchAll = new RegExp(tagScript, 'img');
                return (this.match(matchAll) || []);
        };
        /**
        * Eval scripts
        * @return String
        */
        Array.prototype.evalScript = function(extracted)
        {
                var s=this.map(function(sr){
                        var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
                       
                                                if(window.execScript){
                                        alert(sc);
                                      //window.document.execScript(sc);
                                      window.execScript(sc);
                                                                //self.parent.document.execScript(sc);
                                       
                                                }
                        else
                      {
                                                //setTimeout(((sr.match(new RegExp(sc, 'im')) || ['', ''])[1]),0);});       

                          window.setTimeout(sc,0);
                        }
                });
                return true;
        };
        /**
        * Map array elements
        * @param {Function} fun
        * @return Function
        */
        Array.prototype.map = function(fun)
        {
                if(typeof fun!=="function"){return false;}
                var i = 0, l = this.length;
                for(i=0;i<l;i++)
                {
                        fun(this[i]);
                }
                return true;
        }; 
</script>


GatorV 02/04/2008 11:34

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
En el post de Maborak propone usar por ejemplo:
Código:

element.innerHTML = ajax.responseText.stripScripts();
Eso hace que los tags de <script src="archivo.js"></script> desaparezcan, así que lo que debes de hacer es algo así:
Código:

var script = ajax.responseText.extractScript();
element.innerHTML = ajax.responseText;
script.evalScript();

Saludos.

vansert 02/04/2008 11:41

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Actualmente lo estoy realizando asi, segui la indicacion del post.
Pero no se abren los scripts .js :(
Llevo harto rato pegado en esto...he realizado todos los seguimientos y no doy con la solución.

Este es mi código JS para interactuar con Ajax:

Código:

                AjaxOBJ.open("POST", "PresupuestoInicial_buscarTipoCuentas.php", true);
            AjaxOBJ.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

                AjaxOBJ.onreadystatechange=function() {
                               
                                if (AjaxOBJ.readyState==4) {

                                        if (AjaxOBJ.status==200){
                                               
                                                var scs = AjaxOBJ.responseText.extractScript();
                                                document.getElementById("cuentas_listado").innerHTML = AjaxOBJ.responseText;
                                                scs.evalScript();
                                        }
                                }
                }

                AjaxOBJ.send("tipo_cuenta_seleccionado="+ tipo_cuenta_seleccionado);

Saludos

GatorV 02/04/2008 11:44

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Mmm es raro, te debería de funcionar, otra propuesta es que incluyas las librerías de prototype.js y scriptaculous.js en tu pagina principal, así se evaluarían correctamente.

Saludos.

vansert 02/04/2008 11:53

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Mmmm yo tambien estoy asi, como q no se q onda con esto.
Talvez es una sentencia o algo por ahi....q raro

En fin, voy a probar con ese consejo, es algo simple pero no lo habia considerado.
Te cuento como me fue.

Saludos,

vansert 02/04/2008 12:09

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
GatorV:

Mmmm suponía que tarde o temprano iba a pasar algo asi :neurotico.
Para que veas, tu consejo resolvió mi problema.

Incluí los scripts
Cita:

prototype.js y scriptaculous.js
en la página padre y ningún problema.
Puede ser porque estas librerias son con harto codigo... o talvez no. Pero la solución para que lo tengan en cuenta fue incluir los código embebidos en la página padre.

Me concentré mucho en buscar una solución compleja.... y el camino era otro..y ni siquiera solución, simplemente cambiar código de nivel.

Asi que gracias por la iluminación :borracho: :borracho:

:-):-):-) Saludos y Gracias!!!
Vansert.

GatorV 02/04/2008 12:10

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
Me alegra que tu problema este resuelto.

Saludos.

MaBoRaK 03/04/2008 12:50

Re: Cómo ejecutar Cód. JS y abrir los <scripts SRC> d una pag. obtenida con Ajax Resp
 
loading..........

Pues si.. es raro que no se evaluen los archivos js.....
pero mira, puedes crear un archivo js que solo tenga un

Cita:

alert('me vez porque me ejecuté')
si sale el alert entonces se estan evaluando los archivos js... y si no.. pues no.

connection closed.


La zona horaria es GMT -6. Ahora son las 20:22.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.