Foros del Web » Programando para Internet » Javascript »

ejecutar funcion sin llamada desde código

Estas en el tema de ejecutar funcion sin llamada desde código en el foro de Javascript en Foros del Web. Hola, hace tiempo me enteré que si llamas a una funcion javascript desde la barra de dirección del navegador la ejecuta. A raiz de ese ...
  #1 (permalink)  
Antiguo 01/12/2007, 03:22
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
ejecutar funcion sin llamada desde código

Hola,

hace tiempo me enteré que si llamas a una funcion javascript desde la barra de dirección del navegador la ejecuta. A raiz de ese planteamiento me pregunto si hay alguna forma de abrir una página cualquiera ejecutando una función de javascript que lleve incluída dentro del código.

¿para qué quiero esto? pues muy fácil. Estoy utilizando ServerXMLHTTP para recuperar el contenido de una página, pero dicha página, tiene un paginado que sólo se puede avanzar mediante javascript, es decir la barra de direcciones siempre se queda en index.asp (por ejemplo) y no pasa una variable get para marcar el número de página ni nada por el estilo. Así pues la única opción es ejecutar el javascript para moverse, peeero como no estoy accediendo manualmente sino desde ServerXMLHTTP, pues es ahí por lo que necesitaría indicar de alguna forma que se ejecute la función javascript.

Después de soltar el rollo, algún experto me puede ayudar?

gracias
  #2 (permalink)  
Antiguo 01/12/2007, 06:24
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: ejecutar funcion sin llamada desde código

Fijate si esto te sirve: http://es.wikipedia.org/wiki/Bookmarklet
(No sé si te entendí bien.)

Por otro lado, si en pag1.html tenés esto:
Código PHP:
<script>
trace=function(){
return function(
m){
alert(m)
}
}()
</script> 
Podés hacer que se ejecute desde otra página así:
Código PHP:
<a href="javascript:a=window.open('pag1.html');setTimeout(function(){a.trace('hola');},200);void(0)">abrir
</a

Última edición por Panino5001; 01/12/2007 a las 07:05
  #3 (permalink)  
Antiguo 01/12/2007, 12:36
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: ejecutar funcion sin llamada desde código

genial Panino5001

pero ahora, siguiendo el ejemplo que me has dado, cómo se haría desde la llamada del objeto ServerXMLHTTP ?

es decir, me interesa que cuando hago la llamada:

Código PHP:
objHTTP.Open "GET""pag1.html"False 
la "pag1.html " me ejecute la función "trace" para recuperar el resultado mediante objHTTP.responseText


muy agradecido por tu ayuda
  #4 (permalink)  
Antiguo 01/12/2007, 16:05
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: ejecutar funcion sin llamada desde código

Lo que recuperás usando ajax es texto sólamente. No podrás hacer eso que querés. Lo que sí podrías hacer mediante ajax es recuperar los scripts que hacen algo en la página llamada y reproducir lo que necesitás en la página que hace el llamado. Para eso basta algo como esto:
Código PHP:
<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> 
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 04:32.