如何检测用户是否点击了我的html页面所在的页面标签?

时间:2010-08-11 21:14:46

标签: javascript events focus window document

我正在开发一个网络聊天,我需要在对话发生变化时提出一个事件,以便页面标题发生变化,这样一个用户就可以知道另一个用户已经写了任何内容。

所以我尝试了代码:

addEvent(window,'focus',function(){ alert(1); } );

和     addEvent(document,'focus',function(){alert(2);});

但它不起作用。

即使用户未在网页上点击,我也需要引发事件。

对于那次活动,我有解决方案:

<body onclick="showClickedElement(this);" >

有没有解决方案?

提前致谢。

2 个答案:

答案 0 :(得分:0)

取自:http://bob.pythonmac.org/archives/2010/04/25/tab-visible-event/

var timer = null;
function tabVisible() {
    if (timer) clearInterval(timer);
    timer = null;
    window.onfocus = null;
    window.onmouseover = null;
    /* your code to dispatch event here */
}
// Firefox, IE8
window.onfocus = tabVisible;
// Safari
window.onmouseover = tabVisible;
// dirty hack for Chrome
if (navigator.userAgent.indexOf(' Chrome/') != -1) {
    function dirtyChromePoll() {
        if (window.screenX || window.screenY) tabVisible();
    }
    timer = setInterval(dirtyChromePoll, 100);
}

如果它不能与你的addEvent一起使用,你可能想尝试jQuery(参见Event for when user switches browser tabs

$(window).blur(function(e) {
    // Do Blur Actions Here
});
$(window).focus(function(e) {
    // Do Focus Actions Here
});

答案 1 :(得分:0)

我发现这个代码适用于IE6,7,8和firefox,不需要Jquery。

function onBlur() {
document.body.className = 'blurred';

}; function onFocus(){     document.body.className ='focused'; };

if(/ @cc_on!@ / false){//检查Internet Explorer     document.onfocusin = onFocus;     document.onfocusout = onBlur; } else {     window.onfocus = onFocus;     window.onblur = onBlur; }

source