Онблур не стреляет последовательно в IE и в FF - PullRequest
1 голос
/ 18 октября 2010

У меня есть такой код: (это всплывающее окно)

<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 ]

3 голосов
/ 18 октября 2010

Вы не можете.

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

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

2 голосов
/ 18 октября 2010

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

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

...