如何检测用户是否单击了我的 html 页面所在的页面选项卡?

发布于 2024-09-14 14:44:46 字数 404 浏览 11 评论 0原文

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

所以我尝试了代码:

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

和 addEvent(文档,'焦点',function(){ 警报(2); } );

但它不起作用。

即使用户没有点击网页,我也需要引发该事件。

对于那个事件,我已经有了解决方案:

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

有什么解决方案吗?

提前致谢。

I'm developing a web chat and I need to raise an event when the conversation has changed so the page title changes so one user can know that the other user has written anything.

So I tried the code:

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

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

but it does not work.

I need the event to be raised even if the user does not click on the web page.

For that event, I've got the solutions:

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

Is there any solution?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白色秋天 2024-09-21 14:44:46

取自: 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(请参阅 用户切换浏览器选项卡时的事件

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

taken from: 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);
}

If it doesn't work with your addEvent, you might want to try jQuery (see Event for when user switches browser tabs)

$(window).blur(function(e) {
    // Do Blur Actions Here
});
$(window).focus(function(e) {
    // Do Focus Actions Here
});
黄昏下泛黄的笔记 2024-09-21 14:44:46

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

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

};
函数 onFocus(){
document.body.className = '重点';
};

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

I've found this code that works for IE6, 7,8 and firefox and no not need Jquery.

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

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

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

source

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文