2010-10-18 1 views
1

У меня есть такой код: (это всплывающее)ONBLUR не стреляли последовательно в IE и 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> 

Теперь мои проблемы:

  1. В FF - Когда я перехожу в главное окно, событие onblur не является огнем.

  2. В IE - когда я нажимаю на кнопку выбора для выбора опции, событие запускается.

Я хочу, чтобы событие срабатывало только тогда, когда пользователь выберет другое окно, кроме всплывающего окна. Является ли это возможным?

Я пробовал также onfocusout, но это не работает в обоих браузерах.

Спасибо!

ответ

2

Дайте это. Вы пытаетесь сделать окно захватывающим фокус всякий раз, когда он теряет его, тем самым сохраняя его навсегда сосредоточенным? Это, возможно, самое неприятное поведение в мире. Браузеры не позволят вам сделать это, к счастью.

Quirksmode имеет некоторую приличную информацию о фокус и размытия событий: http://www.quirksmode.org/dom/events/blurfocus.html и http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html

3

Вы не можете.

В философии веб-дизайна у вас есть контроль над всем в окне, но не с самим окном (да, есть части javascript, которые нарушают это, например изменение размера окна, но они злые, и точка по-прежнему действует).

Попытка сделать это бесполезно и неправильно. Каждый приличный браузер не позволит этого, и если вы найдете тот, который делает, это, вероятно, ошибка.