Comunidad de diseño web y desarrollo en internet online

imposible ejecutar JavaScript

Citar            
MensajeEscrito el 18 Dic 2006 12:42 pm
Bueno amigos a ver si podeis ayudarme. Cuando descubrí el tutorial de ajax, vi el cielo abierto. Era la solución que tanto había buscado, podía mostrar varias páginas en una capa, simplemente llamando a la función "llamarasincrona" , FABULOSO. El problema vino cuando en una de esas llamadas al archivo (por ejemplo: X.html) no podía ejecutar los scripts de LITEBOX. Pensé..., será que hay algún problema en el código fuente de LITEBOX, me puese manos a la obra e hice una prueba con un pequeño Script, porque me temía lo peor:
var t="hola"
alert(t)
efectivamente el script no corría. Ya supondreis cual es mi pregunta ¿No se pueden ejecutar Scripts en los archivos html que llama la funcion llamarasincrona?.
Saludos.

Por spiderluc

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2006 01:47 pm
Me parece interesante que hagas esta pregunta, mismamente iba a poner algo parecido esta mañana, pero mi problema
es que no me carga un flash porque esta metido en un script (EOLAS)

Yo pondre mas tarde un ejemplo con la carga.

Haber si alguien lo soluciona :D

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Dic 2006 05:13 am
Si, si se puede. Recuerdo haber leido esto antes, pero no estoy seguro donde. Quizás fael conozca alguna URL sobre el tema.

Por NEO_JP

BOFH

5724 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

firefox
Citar            
MensajeEscrito el 22 Dic 2006 06:23 pm
alguna url?

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 23 Dic 2006 03:14 am
Si, de cómo ejecutar javascript dentro de una página que ha sido cargada con ajax.

Por NEO_JP

BOFH

5724 de clabLevel

13 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Premio_Secretos Team Cristalab

Front-end Developer en Washington, DC

firefox
Citar            
MensajeEscrito el 23 Dic 2006 04:34 am

NEO_JP escribió:

Si, de cómo ejecutar javascript dentro de una página que ha sido cargada con ajax.
¿Qué carajo?

Esto no es un problema técnico, sino de entendimiento del flujo de programación. Cuando insertan trozos enteros de HTML a, digamos, un DIV, usando Xmlhttprequest, sólo hacen eso, meter una carga de texto.

Javascript funciona solamente al cargarse la pagina. En ese momento se crean los eventos que responden a acciones del usuario (Como tener un script que crea y maneja un menu) o los scripts que representan algo en pantalla (Como SWFobject, el script antiEOLAS). Si ustedes quieren cargar secciones enteras de una pagina y que código JS dentro de esa pagina sea ejecutado, pues simplemente ponen en el código que van a cargar algo como:

Código :

function main(){
    alert("mama, funciona");
}
Y luego, después de que el evento de carga de XmlHttpRequest termine, lo ejecutan con un simple

Código :

main();
No se va a ejecutar magicamente con solo cargar el texto y meterlo en un div. De hecho, en general, todo el JS debería ir en el HTML principal, jamás se debería cargar por AJAX más AJAX o JS.

Y algo más. En general, lo que ustedes están haciendo es una pésima idea. Por supuesto, hay casos especiales (Y bastante únicos) donde podría ser util lo que quieren, pero en general NO se debe cargar una sección entera por medio de XmlHttpRequest (AJAX). Eso es un mal uso de la tecnología que aniquila ventajas de HTML como su indexabilidad o la posibilidad de navegar por medio de las herramientas del browser. ¿Sacrificar todo eso por un poco de velocidad adicional para un usuario que de todas formas no lo notará?

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 23 Dic 2006 06:42 pm
de hecho no es mala idea, claro, sabiéndola utilizar.
en un cms si se quiere borrar un artículo me parece tonto que se tenga que cargar la página otra vez al presionar "borrar" y después otra vez una carga completa al presionar "sí, estoy seguro". ajax ayuda a hacer todo esto más rápido y eficiente.
la idea de indexabilidad no se pierde siempre y cuando el diseñador esté al tanto de éstas cuestiones. la mayoría de las aplicaciones que hago, intento hacerlas funcionar incluso sin javascript, cada enlace que tiene una función javascript se activa mediante onclick, no está en el href="javascript:void(blabla())", pues en éste caso, sí, se pierden todo esto que señalas y más.

ahora, sobre la respuesta, sí, la tengo, pero no es sencilla, pero prometo publicar el tip 2 o 3 días después de navidad.

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 02 Ene 2007 02:03 pm
ponla cuando puedas :D

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2007 01:22 pm
fael, haber cuando pones el tip para verlo :D que ya hace tiempo ha pasado navidad, jejje

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2007 04:59 pm

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 23 Ene 2007 12:06 pm
Muchas gracias Fael, lo mirare haber si lo entiendo y lo aplicare...

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Ene 2007 01:44 pm
No, Fael prometio un tutorial, no se vale Jquery(rules) :lol:
Lo que escribió Freddie es la mejor opcion y creo la unica, aparte del uso de Jquery, hace poco tuve un problema similar, tenia que cargar un combo(select) con un javascript particular, y pasandolo directamente no resultaba por los motivos explicados por F, y lo mas facil que hice fue colocar el script para ese combo en un .js aparte que es vinculado al inicio de la pagina, y todo fue feliz

Por Max

Claber

267 de clabLevel



Genero:Masculino  

Lima - Peru

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.