2010-10-18 15 views
1

J'ai un code comme ceci: (ce qui est un pop-up)onblur pas tirer constamment dans IE et FF

<body onblur="window.focus();"> 
    <form id="ronny"> 
     <select id="select1" name="select1"> 
      <option> 1b </option> 
      <option> 1a </option> 
     </select> 
     <select id="select2" name="select2"> 
      <option> 2b </option> 
      <option> 2a </option> 
     </select> 
    </form> 
</body> 

Maintenant, mes problèmes sont les suivants:

  1. FF - quand je me déplace dans la fenêtre principale, l'événement onblur n'est pas déclenché.

  2. Dans IE - lorsque je clique sur select pour sélectionner une option, l'événement est déclenché.

Je souhaite que l'événement se déclenche uniquement lorsque l'utilisateur sélectionne une autre fenêtre que la fenêtre contextuelle. C'est possible?

J'ai essayé aussi onfocusout mais cela ne fonctionne pas dans les deux navigateurs.

Merci!

Répondre

2

Rendez-vous. Vous essayez de faire en sorte qu'une fenêtre attire l'attention chaque fois qu'elle la perd, la gardant ainsi concentrée pour toujours? C'est peut-être le comportement le plus ennuyeux au monde. Les navigateurs ne vous laisseront pas faire cela, heureusement.

Quirksmode a quelques informations décent sur les événements focus et flou: http://www.quirksmode.org/dom/events/blurfocus.html et http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html

3

Vous ne pouvez pas. Dans la philosophie webdesign, vous avez le contrôle de tout dans la fenêtre, mais pas de la fenêtre elle-même (oui, il y a des parties javascript qui violent cela, comme redimensionner la fenêtre, mais ils sont mal et le point est encore valide).

Essayer de faire ceci est futile et faux. Chaque navigateur décent ne le permet pas, et si vous en trouvez un qui le fait, c'est probablement un bug.