작업 표시 줄에서 브라우저 창 깜박임 만들기
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 자바 스크립트 API에 대한 으르렁 거리는 창에서 이것을 할 수 있습니다.
http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api
하지만 사용자는 으르렁 거리는 것을 설치해야합니다.
결국 이것은 NotificationAPI의 형태로 Google Gears의 일부가 될 것입니다.
http://code.google.com/p/gears/wiki/NotificationAPI
따라서 지금은 으르렁 거리는 접근 방식을 사용하고, 가능하면 창 제목 업데이트로 돌아가고, 결국 Gears 알림 API를 사용하려는 시도를 이미 엔지니어링하는 것이 좋습니다.
내 "사용자 인터페이스"응답은 다음과 같습니다. 사용자 가 브라우저를 깜박이 기를 원합니까 , 아니면 그들이 원하는 것이라고 생각 합니까? 내가 귀하의 소프트웨어를 사용하는 경우 이러한 경고가 매우 자주 발생하여 방해를 받으면 짜증이 날 것임을 알고 있습니다.
이 방법을 사용하고 싶다면 자바 스크립트 알림 상자를 사용하세요. 이것이 Google 캘린더가 이벤트 알림을 위해 수행하는 작업이며 아마도 몇 가지 생각을했을 것입니다.
웹 페이지는 실제로 알아야 할 알림을위한 최상의 매체가 아닙니다. "ZOMG, 서버가 다운되었습니다!"라는 문구를 따라 무언가를 설계하는 경우 경고, 자동화 된 전자 메일 또는 SMS 메시지를 적절한 사람에게 보낼 수 있습니다.
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
내가 이것을 생각할 수있는 유일한 방법은 메시지가 수신 될 때 alert ( 'you have a new message')와 같은 일을하는 것입니다. 창이 최소화 된 경우 작업 표시 줄이 깜박이지만 원하지 않는 대화 상자도 열립니다.
Gmail이 사용하는 접근 방식을 취하고 페이지 제목에 메시지 수를 표시하는 것은 어떻습니까?
때때로 사용자는 새 메시지가 도착했을 때주의가 산만 해지는 것을 원하지 않습니다.
window.focus ()를 시도해 볼 수 있지만 화면이 전환되면 성 가실 수 있습니다.
you could change the title of the web page with each new message to alert the user. I did this for a browser chat client and most users thought it worked well enough.
document.title = "[user] hello world";
AFAIK, there is no good way to do this with consistency. I was writing an IE only web-based IM client. We ended up using window.focus(), which works most of the time. Sometimes it will actually cause the window to steal focus from the foreground app, which can be really annoying.
These users do want to be distracted when a new message arrives.
It sounds like you're writing an app for an internal company project.
You might want to investigate writing a small windows app in .net which adds a notify icon and can then do fancy popups or balloon popups or whatever, when they get new messages.
이것은 지나치게 어렵지 않으며 '트레이 아이콘을 어떻게 표시합니까?'와 '알림 팝업을 어떻게 수행합니까?'라고 물어 보면 훌륭한 답변을 얻을 수 있습니다. :-)
기록을 위해 (경고 / 프롬프트 대화 상자를 사용하는 것 외에) JS에서 작업 표시 줄을 깜박일 수 없다고 확신합니다. 이것은 Windows에 특화된 것이며 JS는 실제로 그렇게 작동하지 않습니다. 일부 IE 관련 Windows ActiveX 컨트롤을 사용할 수 있지만 가난한 사용자에게 IE를 유발합니다. 하지마 :-(
function blinkTab() {
const browserTitle = document.title;
let timeoutId;
let message = 'My New Title';
const stopBlinking = () => {
document.title = browserTitle;
clearInterval(timeoutId);
};
const startBlinking = () => {
document.title = document.title === message ? browserTitle : message;
};
function registerEvents() {
window.addEventListener("focus", function(event) {
stopBlinking();
});
window.addEventListener("blur", function(event) {
const timeoutId = setInterval(startBlinking, 500);
});
};
registerEvents();
};
blinkTab();
참고 URL : https://stackoverflow.com/questions/37122/make-browser-window-blink-in-task-bar
'program tip' 카테고리의 다른 글
백분율 (%) 및 픽셀 (px) 또는 em의 테두리 반경 (0) | 2020.08.18 |
---|---|
Haskell의 Prelude.read가 Maybe를 반환하지 않는 이유는 무엇입니까? (0) | 2020.08.18 |
setInterval () 내에서 clearInterval ()을 호출 할 수 있습니까? (0) | 2020.08.18 |
Python3에서 인덱스로 dict_keys 요소에 액세스 (0) | 2020.08.18 |
jUnit의 여러 RunWith 문 (0) | 2020.08.18 |