请注意,这与窗口上的焦点和模糊事件有关,而不是与表单字段有关。
我在弹出窗口中加载一个文档,它包含以下代码:
<script type="text/javascript">
window.onblur = function(){ document.title="BLURRED"; }
window.onfocus= function(){ document.title="FOCUSED"; }
</script>
这些功能是临时的,用于测试。我希望使用这些事件来设置一个指示窗口状态的标志;我正在做一个聊天应用程序,如果消息在最小化时出现,我会做一些引人注目的标题更改。但是,如果它们在窗口获得焦点时不取消,它们只会很烦人。
Onload,我也把焦点放在了一个textarea上。(不确定这是否有任何区别。)
IE7(我手边没有其他版本)似乎可以识别window.onblur
但不识别window.onfocus
. Opera 10 实在是太奇怪了。
这是我拥有的浏览器中发生的情况。我通过单击父级中的链接来启动弹出窗口,然后通过单击(Windows XP)任务栏上的弹出按钮来经历几个最小化恢复周期:
野生动物园 4:
- 打开窗口:文档以原始标题打开
- 最小化:标题更改为“模糊”
- 恢复:标题更改为“FOCUSED”
这是我预期会发生的。
火狐 3.5:
- 打开窗口:文档以原始标题打开,然后更改为“FOCUSED”
- 最小化:标题更改为“模糊”
- 恢复:标题更改为“FOCUSED”
onfocus onload 有点意外,但不是问题。
IE7:
- 打开窗口:文档以原始标题打开
- 最小化:标题更改为“模糊”
- 恢复:无论我切换多少次,标题都不会改变
onfocus怎么了?
歌剧 10.5
- 打开窗口:文档以原始标题打开,但在另一个选项卡中,不弹出
有时...
- 最小化:标题更改为“模糊”
- 恢复:标题更改为“FOCUSED”
有时...
- 最小化:标题更改为“BLURRED”然后“FOCUSED”
- 恢复:标题不变
好吧,这简直太奇怪了……
我对其他方法持开放态度,但我真的很想了解这里发生了什么,用普通的旧 Javascript - 所以请不要给出 jQuery 答案,除非真的没有其他方法解决这个问题。