JavaScriptを使用してタスクバーでユーザーのブラウザを点滅/フラッシュ/ハイライトするにはどうすればよいですか?たとえば、ユーザーがサーバー上に新しいメッセージがあるかどうかを確認するために10秒ごとにAJAXリクエストを行う場合、その時点で別のアプリケーションを使用している場合でも、ユーザーにすぐに知らせてもらいたいと思います。
編集:これらのユーザーは、新しいメッセージが到着したときに気を散らしたいと思っています。
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 を使用していない場合でも、ソース コードを確認することをお勧めします (すべての主要なブラウザーを完全にサポートする場合、タイトルの点滅を行うときに回避する必要があるいくつかの風変わりなバグやエッジ ケースがあります)。
var oldTitle = document.title;
var msg = "New Popup!";
var timeoutId = false;
var blink = function() {
document.title = document.title == msg ? oldTitle : msg;//Modify Title in case a popup
if(document.hasFocus())//Stop blinking and restore the Application Title
{
document.title = oldTitle;
clearInterval(timeoutId);
}
};
if (!timeoutId) {
timeoutId = setInterval(blink, 500);//Initiate the Blink Call
};//Blink logic
おそらく、windows javascript API 用のうなり声を使用して、windows でこれを行うことができます。
http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api
ただし、ユーザーはうなり声をインストールする必要があります。
最終的には、これは NotificationAPI の形で Google Gears の一部になる予定です。
http://code.google.com/p/gears/wiki/NotificationAPI
したがって、当面はグロウル アプローチを使用し、可能であればウィンドウ タイトルの更新にフォールバックし、Gears Notification API が最終的に利用可能になったときに使用するように設計することをお勧めします。
私の「ユーザー インターフェース」への回答は次のとおりです。私があなたのソフトウェアを使用している場合、これらのアラートが頻繁に発生して邪魔になるとイライラすることはわかっています.
この方法で実行したい場合は、javascript アラート ボックスを使用してください。これは、Google カレンダーが予定のリマインダーとして行っていることであり、おそらく何らかの工夫が凝らされています。
Web ページは、知る必要のあるアラートにとって最適な媒体ではありません。「ZOMG、サーバーがダウンしている!」という線に沿って何かを設計している場合。適切な人へのアラート、自動化された電子メール、または SMS メッセージがうまくいくかもしれません。
これを行う唯一の方法は、メッセージを受信したときに alert('you have a new message') のようなことをすることです。これにより、ウィンドウが最小化されている場合はタスクバーが点滅しますが、望ましくないダイアログ ボックスも開きます。
GMail が使用するアプローチを採用して、ページ タイトルにメッセージ数を表示してみませんか?
ユーザーは、新しいメッセージが届いたときに気を散らされたくない場合があります。
新しいメッセージごとにWebページのタイトルを変更して、ユーザーに警告することができます。私はブラウザチャットクライアントに対してこれを行いましたが、ほとんどのユーザーはそれで十分に機能すると考えていました。
document.title = "[user] hello world";
window.focus() を試してみるのもいいかもしれませんが、画面が切り替わると面倒かもしれません
私の知る限り、これを一貫して行う良い方法はありません。私は IE のみの Web ベースの IM クライアントを作成していました。ほとんどの場合、window.focus() を使用することになりました。場合によっては、実際にウィンドウがフォアグラウンド アプリからフォーカスを奪うこともあり、これは非常に面倒なことです。
これらのユーザーは、新しいメッセージが届いたときに気が散ることを望んでいます。
社内プロジェクト用のアプリを作成しているようですね。
通知アイコンを追加し、新しいメッセージを受け取ったときに派手なポップアップやバルーン ポップアップなどを実行できる小さな Windows アプリを .net で作成することを検討することをお勧めします。
これはそれほど難しいことではなく、SO に「トレイ アイコンを表示するにはどうすればよいですか」と「ポップアップ通知を表示するにはどうすればよいですか」と尋ねれば、すばらしい答えが得られると確信しています :-)
記録のために、(アラート/プロンプトダイアログボックスを使用する以外に) JS でタスクバーをフラッシュすることはできないと確信しています。IE 固有の Windows ActiveX コントロールを使用できる場合もありますが、貧しいユーザーに IE を負わせることになります。それをしないでください:-(
「タスクバーでブラウザウィンドウを点滅させる」
via Javascript
不可能です!!