2009-02-26 17 views
7

Cuando flash tiene el foco del teclado, CTRL +T (nueva pestaña) y CTRL +N (nueva ventana) son interceptadas por el flash.javascript para nueva pestaña (CTRL + T), nueva ventana (CTRL + N)?

¿Hay alguna forma de pasar estos eventos al navegador para que funcionen (abriendo una nueva pestaña, abriendo un nuevo navegador) O hay un comando de javascript para estas acciones?

+0

Siempre he querido hacer esta pregunta, y tú lo hiciste por mí. Gracias – Matias

Respuesta

2

Este es un problema de larga duración con Flash y navegadores. (Y me refiero a long - mire este eight-year-old bug en los navegadores Mozilla). El problema es que Flash intercepta todos los eventos de entrada, en lugar del navegador. Es un espacio aislado en su propio entorno y no devuelve eventos al navegador.

Conceptualmente, esto no es necesariamente algo malo. ¿Qué sucede cuando Flash quiere escuchar un evento "ctrl + n"? ¿Debería el navegador quitar el foco de Flash porque ya usa esa tecla de acceso rápido? Sería un verdadero dolor para los desarrolladores de Flash, eso es seguro.

Ha habido propuestas sobre cómo solucionar este problema que he visto para determinados navegadores, pero no hay una solución general. Por ejemplo, se hace referencia al error this solution, pero obviamente no funcionará de la manera que desee (ya que el usuario tendrá que pasar por varios aros para que funcione).

Así que ... no, por ahora. Sería realmente bueno si este problema pudiera solucionarse.

+1

"¿Debería el navegador quitar el foco de Flash porque ya usa esa tecla de acceso rápido?" - ¡Sí! Flash es un "invitado" en la "casa" del navegador. Y uno especialmente mal educado, también. :-) –

+0

Jajaja, nunca he escuchado la analogía de los invitados para los complementos, eso es bastante increíble. –

1

más cercano que podría conseguir es tener ActionScript gatillo Javascript para abrir una ventana en blanco a una URL en blanco

// We abstract it in a function here in case we want to 
// change it later 
function openBlankWindow() 
{ 
    window.open(''); 
} 

Para la mayoría de la gente, esto abrirá una nueva ventana o una nueva pestaña (en función de sus preferencias del navegador) pero como está siendo iniciado por la página web, puede estar sujeto a bloqueadores de ventanas emergentes.

No hay manera de pedirle al navegador que realice específicamente una de las dos tareas que está haciendo. Sería una pesadilla de seguridad/molestia si las páginas web tuvieran los permisos/privilegios para hacerlo.

+0

No creo que quiera darle acceso Flash al navegador tanto como quiere que la funcionalidad normal del navegador funcione incluso dentro de Flash. –

+0

Lo sé, razón por la cual lo primero que dije fue "lo más cerca que podrías estar". Permitir que los comandos de teclado salten de una película flash al navegador es algo que solo Adobe podría solucionar. –

+0

Estaba respondiendo a su último párrafo, no al resto; el resto tiene sentido para mí. –

Cuestiones relacionadas