1

我有这样的代码:(这是一个弹出窗口)

<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,但这在两种浏览器中都不起作用。

谢谢!

4

2 回答 2

3

你不能。

在网页设计哲学中,您可以控制窗口中的所有内容,但不能控制窗口本身(是的,有些 javascript 部分违反了这一点,例如调整窗口大小,但它们是邪恶的,这一点仍然有效)。

试图这样做是徒劳和错误的。每个像样的浏览器都不会允许它,如果你找到一个允许的,它可能是一个错误。

于 2010-10-18T10:25:08.517 回答
2

放弃这个。您试图让窗口在失去焦点时抓住焦点,从而使其永远保持焦点?这可能是世界上最令人讨厌的行为。浏览器不会让你这样做,很高兴。

Quirksmode 有一些关于焦点和模糊事件的不错信息:http ://www.quirksmode.org/dom/events/blurfocus.html和http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html

于 2010-10-18T08:27:44.327 回答