onblur在IE和FF中不能持续发射

时间:2010-10-18 07:45:10

标签: javascript html onblur

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

<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中 - 当我点击选择以选择一个选项时,会触发该事件。

  3. 我希望只有当用户选择弹出窗口以外的其他窗口时才会触发事件。有可能吗?

    我也尝试了onfocusout,但这在两种浏览器中均无效。

    谢谢!

2 个答案:

答案 0 :(得分:3)

你做不到。

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

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

答案 1 :(得分:2)

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

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