window.onblur 事件在使用 IE8 时也会触发 window.onfocus 事件

window.onblur event also triggers window.onfocus event when using IE8

本文关键字:事件 window onfocus IE8 onblur      更新时间:2023-09-26

这两个事件都在模糊事件时被触发。

<%@ Page Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true"  CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication1.WebForm1" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script src="js/jquery-1.7.2.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
        window.onfocus = function() {
            $('#msg').html($('#msg').html() + '<br/> focus');
        };
        window.onblur = function() {
            $('#msg').html($('#msg').html() + '<br/> Blur');
        };
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">   
    <div id="msg">
    </div>
</asp:Content>

终于解决了。谢谢大家的帮助!

$(window).bind("load", function() {
        pageLoad();
    });
    var activeElement;
    function pageLoad() {
        activeElement = document.activeElement;
        document.onfocusout = logWindow;
    }
    function logWindow() {
        if (activeElement != document.activeElement) {
            activeElement = document.activeElement;
        }
        else {
            $('#msg').html($('#msg').html()+'<br/> Focus');
        }
    }
 window.onblur = function() { 
      $('#msg').html($('#msg').html() + '<br/> Blur');     
      return false;
 }; 

可能是事件正在冒泡。