Error de Javascript en W95, W98 llamado desde el systray de una aplicación VC (Navigate2)

08/04/2004 - 13:29 por Jordi Gou | Informe spam
Hola.

Tengo una aplicación que entre otras funcionalidades permite chatear. Para
ello el programa en VC++ interactua con páginas HTML com javascript. También
utilizo una clase propia para implementar el navegador (hereda de IDispatch
y tiene referencias a IWebBrowser2, IHTMLDocument2 e IUnknown)

Una de las opciones para abrir una conversación a otra persona és des del
menú de un systray que tiene mi aplicación, pero al clickar en el usuario
cargado y ejecutarse un código Javascript (básicamente hace un window.open),
a través de mi clase que interactua con el browser, aparece el siguiente
error de Javascript:

"No se puede hacer una llamada de salida desde la aplicación que está
ejecutando una llamada de sincronización de entrada."

Esto ocurre tan solo en W95 y W98 y desde la aplicación. Si se ejecuta via
web la misma secuencia de páginas no aparece este error o sea que tiene que
ser cosa de VC++.

Mis sospechas iban hacia el hecho que no estaba cargada la página (Navigate2
es asíncrono) pero ahora ya no estoy seguro que sea eso, puesto que el
problema aparece con el window.open. Si pongo una llamada parecida en el
onload o el onunload de una pàgina parece que responde bien pero esto no me
sirve para integrar la aplicación en el sistema ya existente.

¿Alguien sabe lo que está pasando? ¿Cuál es el problema? ¿Qué indica este
error de javascript?

Gracias

Jordi
 

Leer las respuestas

#1 Cholo Lennon
08/04/2004 - 18:31 | Informe spam
Es dificil saber que está causando el error:

¿Que versión de IE tienes en Win95/98?
¿Probaste con el método Navigate?

Estas son sólo conjeturas:
Como Navigate2 tiene integración con el Shell, y es este el que te está
avisando de un clic en el systray quizás debás llamar a Navigate2
indirectamente, es decir no desde el callback pasado a Shell_NotifyIcon si
no desde por ejemplo un controlador de mensajes, el cual actúa en respuesta
a un PostMessage puesto desde el callback mencionado.

Si puedes mostrar algo de código la ayuda quizás sea más precisa.


Saludos
Cholo Lennon
Salta, ARG

Preguntas similares