FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cerrar ventana Web
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Cerrar ventana Web
Posted: Sun Jan 18, 2009 11:12 AM

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?.

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cerrar ventana Web
Posted: Sun Jan 18, 2009 09:49 PM

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()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Cerrar ventana Web
Posted: Mon Jan 19, 2009 07:12 AM
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
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cerrar ventana Web
Posted: Mon Jan 19, 2009 07:02 PM

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.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Cerrar ventana Web
Posted: Mon Jan 19, 2009 10:09 PM

Muchas gracias Antonio,

Voy a revisarlo.

Un saludo



Manuel
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Cerrar ventana Web
Posted: Tue Jan 20, 2009 09:14 AM

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.

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cerrar ventana Web
Posted: Tue Jan 20, 2009 06:23 PM

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Cerrar ventana Web
Posted: Tue Jan 20, 2009 07:42 PM
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


-------------------------------------------------------------
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cerrar ventana Web
Posted: Tue Jan 20, 2009 07:48 PM

Manuel,

Una solución simple y brillante :-)

gracias,

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion