Excelente :D
Sería bueno ponerlo en las FAQ
connection closed.
|
|
#31 (permalink) |
![]() ![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
Excelente :D Sería bueno ponerlo en las FAQ connection closed.
__________________
http://www.maborak.com Maborak technologies |
|
|
|
|
|
#32 (permalink) |
![]() Fecha de Ingreso: junio-2005
Mensajes: 2
|
Re: HOWTO: Ejecutar javascript que viene de ajax
acabo de descubrir que este codigo no funciona bien en Mozilla!!
cuando quiero recuperar los datos en otra pagina a traves de un request.form no reconoce los datos que cargue desde el ajax!!!!! alguien sabe como solucionarlo??? |
|
|
|
|
|
#33 (permalink) |
![]() ![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
loading.............
Puedes poner la URL donde la usas? o bien... especificar mejor el problema. No te entendí. connection closed.
__________________
http://www.maborak.com Maborak technologies |
|
|
|
|
|
#34 (permalink) |
![]() Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 373
|
Re: HOWTO: Ejecutar javascript que viene de ajax
Holas!
Gracias por este aporte, me he leído todo el tema, e intentado aplicar las soluciones dadas en mi propio script, mas no me han funcionado. La razón, claro, es porque todavía soy novata en el uso de AJAX, así que por eso les pido consejo. Rápidamente les contaré que el script que estoy usando lo heredé de un compañero de trabajo, por lo que sólo copié y usé, pero sin entender mucho, el caso es que funcionó todo bien, hasta que me tocó ver que el código JS inserto en la respuesta Ajax no se ejecutaba. Gracias a ustedes me entero que esto es "normal", y bueno mi caso es que el código Ajax que tengo es algo así: Código HTML:
var ajx = Ext.get("miDiv");
ajx.load({
url: 'script.php',
method: 'POST',
params: Ext.lib.Ajax.serializeForm('miForm'),
text: "<img src=../images/loading.gif> Consultando Informacion Remota..."
});
ajx.show();
ajx.highlight();
Desde ya muchísimas gracias ó_ò |
|
|
|
|
|
#36 (permalink) |
|
Moderador
![]() ![]() ![]() ![]() ![]() Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.616
|
Re: HOWTO: Ejecutar javascript que viene de ajax
Hola titogelo,
Tus dudas fueron movidas a un tema nuevo: Problemas al ejecutar JS desde AJAX Saludos. |
|
|
|
|
|
#37 (permalink) |
![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
Hola, yo utilizo el framework de prototype para realizar estas cosas, indicandole la opcion evalScripts: true
Funciona perfecto cuando me trae codigo para pegar en el html. El problema esta cuando quiero pegar un script con un src...ejemplo, un gadget de google:
Código:
No me parsea el contenido de eso y quiero mostrarlo unicamente por ajax.<script src="http://gmodules.com/ig/ifr?url=http://www.canbuffi.de/gadgets/clock/clock.xml&up_title=Clock%20%26%20Date&up_time_format=0&up_seconds=1&up_date_format=1&up_dayofweek=1&up_gmtoffset=-3&up_daylight=0&synd=open&w=320&h=120&title=__UP_title__+(GMT__UP_gmtoffset__)&lang=en&country=ALL&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script> Alguna solucion? Gracias!
__________________
"Vivir....solo cuesta Vida" |
|
|
|
|
|
#38 (permalink) |
![]() ![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
loading...........
Tienes la URL donde estes usando este script? La estas usando como la opcion A o la opcion B ? connection closed.
__________________
http://www.maborak.com Maborak technologies |
|
|
|
|
|
#39 (permalink) |
![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
Cita:
No, no lo tengo online, es local por ahora.Pero el ejemplo es sencillo. La idea es ejecutar script de un src. Solo quiero saber si se puede hacer eso con Prototype y de que forma Gracias.
__________________
"Vivir....solo cuesta Vida" |
|
|
|
|
|
#40 (permalink) |
![]() ![]() |
Re: HOWTO: Ejecutar javascript que viene de ajax
loading...........
Leiste la documentación de Prototype? connection closed.
__________________
http://www.maborak.com Maborak technologies |
|
|
|
|
|
#41 (permalink) |
![]() Fecha de Ingreso: abril-2008
Mensajes: 7
|
Re: HOWTO: Ejecutar javascript que viene de ajax
Hola a todos.
Estoy intentando aplicar estas funciones a mi código, ya que tengo un problema que describo en otro tema en este foro(No pongo el link porque el sistema antispam no me deja). El problema viene a raiz de querer usar shadowbox en paginas cargadas con Ajax. Shadowbox funciona perfectamente en la pagina raiz pero en las paginas cargadas no. He probado a incluir la llamada a shadowbox.init() en la pagina en la que quiero usar shadowbox que cargo por ajax y sigue sin funcionar. Alguna idea? muchas gracias!! |
|
|
|
|
|
#42 (permalink) |
|
Colaborador
![]() ![]() Fecha de Ingreso: mayo-2004
Ubicación: Buenos Aires
Mensajes: 1.318
|
Respuesta: HOWTO: Ejecutar javascript que viene de ajax
Antes, cuando tenía que evaluar código javascript incluído en un responseText, lo hacía de esta manera:
Código:
Pero al parecer, Explorer 7 ya no incluye los tags script dentro de la propiedad innerHTML, por lo cual, esa técnica ya no funciona, a menos que reemplacemos los tags scripts por otros y volvamos luego a recrearlos.<script>
function SetContainerHTML(id_contenedor,responseText)
{
mydiv = document.getElementById(id_contenedor);
mydiv.innerHTML = responseText;
var elementos = mydiv.getElementsByTagName('script');
for(i=0;i<elementos.length;i++) {
var elemento = elementos[i];
nuevoScript = document.createElement('script');
nuevoScript.text = elemento.innerHTML;
nuevoScript.type = 'text/javascript';
if(elemento.src!=null && elemento.src.length>0)
{nuevoScript.src = elemento.src;}
elemento.parentNode.replaceChild(nuevoScript,elemento);
}
}
</script>
Así que me decanté por la opción de las regExp, como la sugerida por MaBoRaK, en la cual se fundamenta toda la idea, pero con algunas diferencias: usando un único prototype para realizar todo el proceso, ya sea para extraer scripts internos y/o externos, e incluyéndos con DOM, en lugar de evaluarlos. El código utilizado para esto es el siguiente:
Código:
Y un ejemplo de uso sería este:String.prototype.tratarResponseText=function(){
var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
var pat2=/\b\s+src=[^>\s]+\b/g;
var elementos = this.match(pat) || [];
for(i=0;i<elementos.length;i++) {
var nuevoScript = document.createElement('script');
nuevoScript.type = 'text/javascript';
var tienesrc=elementos[i].match(pat2) || [];
if(tienesrc.length){
nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
}else{
var elemento = elementos[i].replace(pat,'$1','');
nuevoScript.text = elemento;
}
document.getElementsByTagName('body')[0].appendChild(nuevoScript);
}
return this.replace(pat,'');
}
Código:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
function $(id){return document.getElementById(id);}
function http(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else{
try{
return new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
alert('nop');
return false;
}
}
}
String.prototype.tratarResponseText=function(){
var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
var pat2=/\b\s+src=[^>\s]+\b/g;
var elementos = this.match(pat) || [];
for(i=0;i<elementos.length;i++) {
var nuevoScript = document.createElement('script');
nuevoScript.type = 'text/javascript';
var tienesrc=elementos[i].match(pat2) || [];
if(tienesrc.length){
nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
}else{
var elemento = elementos[i].replace(pat,'$1','');
nuevoScript.text = elemento;
}
document.getElementsByTagName('body')[0].appendChild(nuevoScript);
}
return this.replace(pat,'');
}
function SetContainerHTML(id_contenedor,responseText){
var mydiv = $(id_contenedor);
mydiv.innerHTML = responseText.tratarResponseText();
}
function cargarPagina(url,contenedorId){
var H=new http();
H.open('get',url+'?'+Math.random(),true);
H.onreadystatechange=function(){
if(H.readyState==4){
SetContainerHTML(contenedorId,H.responseText);
H.onreadystatechange=null;
}else{
$(contenedorId).innerHTML='cargando...';
}
}
H.send(null);
}
window.onload=function(){
cargarPagina('pagina2.php','pp');
}
</script>
</head>
<body>
<div id="pp"></div>
</body>
</html>
__________________
http://www.disegnocentell.com.ar Última edición por Panino5001; 16-may-2008 a las 13:07. |
|
|
|
|
|
#44 (permalink) |
|
Moderador
![]() ![]() ![]() ![]() ![]() Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.616
|
Respuesta: HOWTO: Ejecutar javascript que viene de ajax
Hola ronin,
Si usas prototype solo tienes que pasar el parámetro de evalScripts: true, para que los ejecute, no es necesario usar esto. Saludos. |
|
|
|
![]() |
| Herramientas | |
| Desplegado | |
|
|