2009-05-12 8 views
1

J'utilise un appel ExternalInterface activé à partir d'une application flexible intégrée à mon document html. L'appel est à une fonction javascript qui nethis.focus() ne fonctionne pas correctement dans Firefox

function documentFocus() { 
    this.focus(); 
} 

Tout fonctionne comme un charme, sauf que Firefox ne se concentre pas le corps du document 100%. Il arrête d'écouter les événements onkeyup (il enregistre toujours onkeydown).

Comportement très étrange. Quelqu'un at-il une idée de ce qui se passe?

Essayez ici: http // www.willemdemmers.com/dplxr/

Étapes pour reproduire: touches fléchées Essayez de voir un comportement normal (flèche images sont rouges sur keydown et arrêter la lumière sur keydown) Cliquez sur le flash en bas de la fenêtre pour supprimer le focus du corps du document et appeler l'appel de fonction. Réessayez les flèches et voyez le nouveau comportement.

Les événements-clés se déclenchent à l'aide des touches fléchées (gauche et droite).

Merci!

Répondre

0

Je pense que le problème est que le flash est gourmand sur le clavier quand il est cliqué et l'attrape loin de vous.

Vous pouvez le voir en action sur ie youtube. Lorsque vous sélectionnez une vidéo, vous pouvez utiliser les flèches haut et bas pour faire défiler la page vers le haut ou vers le bas. Mais lorsque vous cliquez dans la zone flash (la vidéo), vous ne pouvez plus le faire. Depuis flash attrape le clavier.

+0

C'est ce que j'essaye d'empêcher avec l'appel de la fonction. Cela fonctionne très bien dans Safari mais dans Firefox cela ne marche qu'à moitié – Willem

+0

Essayez cette question SO. http://stackoverflow.com/questions/789771/flash-flex-sdk-as3-how-to-keep-keyboard-focus –

0

Check this out: http://code.google.com/p/custom-context-menu/

C'est un projet qui désactive un clic droit de flash avec javascript, et indique le flash quand il le fait. De plus, cela fonctionne sur un très grand nombre de navigateurs.

pas une solution à 100%, mais vous devriez être en mesure d'adapter leur code JS pour vos besoins

+0

Je n'ai pas de problème avec le clic droit. Le problème est que dans Firefox, this.focus() ou document.body.focus() ne fonctionne pas comme prévu. – Willem

1

Ceci est en fait un bug Firefox de longue date que je souhaite serait fixé. Je ne me souviens pas du numéro de bug de Mozilla.

0

Vous pouvez essayer de mettre au point un élément d'entrée caché (ou absolument éloigné), puis de mettre au point un document. Parce que les entrées sont des éléments presque natifs, cela pourrait aider.

Questions connexes