我需要通过 javascript 知道页面是否有焦点。
当用户切换到另一个选项卡、最小化浏览器或在浏览器外部单击时,页面不应该有焦点。
当用户返回窗口时,通过打开窗口、返回选项卡、点击页面,页面需要有焦点。
问题是当页面上有一个可能有或没有焦点的 Flash swf 并且我无法控制 swf 内容时,该方法必须正确报告页面是否有焦点。
窗口的焦点需要独立于 Flash swf 的焦点。所以当 swf 有焦点时,用户离开浏览器而 flash swf 有焦点,或者当用户直接返回到 swf 时,必须正确报告窗口的焦点。
我有在 FireFox 3.0、3.5、IE 6、7、8、Safari 4.0.3、4.0.4、Opera 9.0+ 中执行此操作的方法。
标准的焦点/模糊窗口事件在 Google Chrome 中无法正常工作。当 flash swf 获得焦点时,窗口会失去它(触发窗口模糊事件)。这是不希望的。
我需要一种适用于 Google Chrome 3 和 4 的方法。
理想情况下,我还想要一种适用于 FireFox 2 和 Safari < 4.0.3 的方法。在这些浏览器中,焦点/模糊也不起作用,就像 flash swf 具有焦点并且您离开窗口一样,根本不会触发模糊窗口事件。