如何使用JavaScript在任务栏中使用户的浏览器闪烁/闪烁/突出显示?例如,如果我每10秒发出一次AJAX请求以查看用户是否在服务器上有任何新消息,我希望用户立即知道它,即使他当时正在使用其他应用程序.
编辑:这些用户确实希望在收到新邮件时分心.
这不会使任务栏按钮闪烁改变颜色,但标题将闪烁,直到他们移动鼠标.这应该跨平台工作,即使他们只是在不同的选项卡中.
newExcitingAlerts = (function () { var oldTitle = document.title; var msg = "New!"; var timeoutId; var blink = function() { document.title = document.title == msg ? ' ' : msg; }; var clear = function() { clearInterval(timeoutId); document.title = oldTitle; window.onmousemove = null; timeoutId = null; }; return function () { if (!timeoutId) { timeoutId = setInterval(blink, 1000); window.onmousemove = clear; } }; }());
更新:您可能希望查看使用HTML5通知.
我已经制作了一个jQuery插件,用于在浏览器标题栏中闪烁通知消息.您可以指定不同的选项,如闪烁间隔,持续时间,如果窗口/选项卡聚焦时闪烁应该停止等等.该插件适用于Firefox,Chrome,Safari,IE6,IE7和IE8.
以下是如何使用它的示例:
$.titleAlert("New mail!", { requireBlur:true, stopOnFocus:true, interval:600 });
如果您不使用jQuery,您可能仍然希望查看源代码(如果您想完全支持所有主流浏览器,那么在执行标题闪烁时需要解决一些奇怪的错误和边缘情况).
据说你可以在Windows上使用增强版的windows javascript API执行此操作:
http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api
您的用户必须安装咆哮.
最终,这将成为谷歌齿轮的一部分,以NotificationAPI的形式:
http://code.google.com/p/gears/wiki/NotificationAPI
所以我建议现在使用growl方法,如果可能的话,回到窗口标题更新,并且已经尝试使用Gears Notification API,以便最终变得可用.
我的“用户界面”响应是:您确定用户希望其浏览器闪烁,还是您认为这就是他们想要的?如果我是使用您软件的人,那么我知道如果这些警报发生得很频繁并且妨碍了我,我会感到烦恼。
如果您确定要这样做,请使用javascript警报框。这就是Google日历用于事件提醒的功能,他们可能对此有所考虑。
网页确实不是需要知道警报的最佳媒介。如果您按照“ ZOMG,则服务器已关闭!”的思路进行设计。警报,自动发送电子邮件或SMS消息给合适的人可能会成功。