我有这样的代码: (这是一个弹出窗口)
<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>
现在,我的问题是:
在FF中 - 当我移动到主窗口时,onblur事件不会触发。
在IE中 - 当我点击选择以选择一个选项时,会触发该事件。
我希望只有当用户选择弹出窗口以外的其他窗口时才会触发事件。有可能吗?
我也尝试了onfocusout
,但这在两种浏览器中均无效。
谢谢!
答案 0 :(得分:3)
你做不到。
在网页设计理念中,你可以控制窗口中的所有内容,但不能控制窗口本身(是的,有javascript部分违反了这一点,例如调整窗口大小,但它们是邪恶的,并且这一点仍然有效)。
尝试这样做是徒劳和错误的。每个体面的浏览器都不会允许它,如果你找到一个,它可能是一个bug。
答案 1 :(得分:2)
放弃。你试图让一个窗口在失去它时抓住焦点,从而保持它永远的焦点?这可能是世界上最讨厌的行为。浏览器不会让你高兴地这样做。
Quirksmode在焦点和模糊事件方面有一些不错的信息:http://www.quirksmode.org/dom/events/blurfocus.html和http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html