我正在开发一个网络聊天,我需要在对话发生变化时提出一个事件,以便页面标题发生变化,这样一个用户就可以知道另一个用户已经写了任何内容。
所以我尝试了代码:
addEvent(window,'focus',function(){ alert(1); } );
和 addEvent(document,'focus',function(){alert(2);});
但它不起作用。
即使用户未在网页上点击,我也需要引发事件。
对于那次活动,我有解决方案:
<body onclick="showClickedElement(this);" >
有没有解决方案?
提前致谢。
答案 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; }