Page 1 of 1

Cerrar ventana Web

PostPosted: Sun Jan 18, 2009 11:12 am
by Manuel Valdenebro
En una aplicación, tengo un diálogo donde se incrusta, mediante activeX, una pagina web. El diálogo y consecuentemente la página web, solo puede cerrarse pulsando el icono "X", en la parte superior derecha de la ventana. En dicha página tengo una serie de rutinas y entre ellas, la de grabar una serie de eventos. Por ello necesitaria que al finalizar una de dichas rutinas, la ventana se cerrará automaticamente, sin tener que pulsar la "X". He intentado con varias rutinas en javascript, pero aunque me sale la ventana del Explorer para que le confirme el cierre de la ventana, no la cierra.
¿Habría alguna manera que pulsando otro botón en la página, se pudiera cerrar la ventana?.

Re: Cerrar ventana Web

PostPosted: Sun Jan 18, 2009 9:49 pm
by Antonio Linares
Manuel,

Tal vez podrias asociar un evento, como el de pulsar un determinado boton o un enlace, y desde ese evento llamar a oWnd:End()

Re: Cerrar ventana Web

PostPosted: Mon Jan 19, 2009 7:12 am
by Manuel Valdenebro
Antonio Linares wrote:Manuel,

Tal vez podrias asociar un evento, como el de pulsar un determinado boton o un enlace, y desde ese evento llamar a oWnd:End()


Antonio, muchas gracias por contestarme.

El problema lo tengo que una vez abierta la página web con el activeX, dentro de esa página, no se reconoce ni el objeto oActiveX, y consecuentemente, ninguna de sus propiedades.

En un ejemplo, en el módulo donde programo el dialogo, he puesto:

oActiveX:Do( "Navigate2",(CurDrive() + ":\"+CurDir()+"\tem.htm") )
oActiveX:SetProp( "cSalir", .t. )

pero despues, en la página, no reconoce el objeto oActiveX
Lo he intentado de las siguientes formas:
var x = oAciveX.cSalir
var x = document.getElementById(oActiveX.cSalir).value ;
var x = document.cSalir ;
var x = window.cSalir ;
var x = oAciveX.cSalir
var x = oActiveX:GetProp( "cSalir" ) )

¿Podrias ayudarme de como desde la página, bien en HTML o en JavaScript, podria conocerse el valor de la propiedad cSalir?

Muchas gracias por tu ayuda

Re: Cerrar ventana Web

PostPosted: Mon Jan 19, 2009 7:02 pm
by Antonio Linares
Manuel,

Te refieres a acceder al objeto oActiveX de FWH desde Javascript o VBscript ? No lo hemos probado nunca, habria que investigar la forma de hacerlo.

Yo me refería al uso de oActiveX:bOnEvent. Por favor revisa FWH\samples\webexp.prg y verás como lo usamos para reaccionar a los eventos que se generan en la página web.

Re: Cerrar ventana Web

PostPosted: Mon Jan 19, 2009 10:09 pm
by Manuel Valdenebro
Muchas gracias Antonio,

Voy a revisarlo.

Re: Cerrar ventana Web

PostPosted: Tue Jan 20, 2009 9:14 am
by Manuel Valdenebro
Antonio, ¡ Triunfo total !

En la página web, a través de JavaScript, modifico el título de la página y este evento es captado por la función EventInfo que ejecuta el oDlg:End(). De esta manera, se cierra
la ventana y además, se evita el molesto aviso de Windows "Una aplicación está intentando cerrar esta ventana".

Muchas gracias de nuevo.

Re: Cerrar ventana Web

PostPosted: Tue Jan 20, 2009 6:23 pm
by Antonio Linares
Manuel,

Muy bien! Me alegro de que lo hayas conseguido :-)

Podrias mostrar parte del código para que otros usuarios veamos como lo has hecho ? gracias

Re: Cerrar ventana Web

PostPosted: Tue Jan 20, 2009 7:42 pm
by Manuel Valdenebro
Antonio Linares wrote:Manuel,

Muy bien! Me alegro de que lo hayas conseguido :-)
Podrias mostrar parte del código para que otros usuarios veamos como lo has hecho ? gracias



1) En el código de la página web (HTML), al pulsar el botón GRABAR, se dispara una función Javascript que realiza una serie de tareas y al finalizar las mismas, colocamos la siguiente línea:

window.document.title = "cerrar" ;


2) En la aplicación FiveWin, cuando abrimos la página con activeX, añadimos lo siguiente:

oActiveX:Do( "Navigate2",(CurDrive() + ":\"+CurDir()+"\temp.htm") )

oActiveX:bOnEvent = { | event, aParams, pParams | EventInfo( event, aParams, pParams, oActiveX, oDlg ) }

.......
.......


3) La función EventInfo (ejemplo en samples\webexp.prg), la dejamos con el siguiente código:

function EventInfo( event, aParams, pParams, oActiveX, oDlg )
if event == "TitleChange"
if aParams[ 1 ] = "cerrar"
oDlg:End()
endif
endif
return nil


-------------------------------------------------------------

Re: Cerrar ventana Web

PostPosted: Tue Jan 20, 2009 7:48 pm
by Antonio Linares
Manuel,

Una solución simple y brillante :-)

gracias,