문제

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 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 알림 API를 사용하려는 시도를 이미 엔지니어링하는 것이 좋습니다.

내 "사용자 인터페이스" 응답은 다음과 같습니다.확실합니까 당신의 사용자 브라우저가 깜박이기를 원하거나 당신 생각에는 그게 그들이 원하는 거야?내가 귀하의 소프트웨어를 사용하는 사람이라면 이러한 경고가 자주 발생하여 방해가 된다면 짜증이 날 것입니다.

이 방법을 사용하려면 자바스크립트 경고 상자를 사용하세요.이것이 Google 캘린더가 이벤트 알림을 위해 수행하는 작업이며 아마도 이에 대해 어느 정도 고려했을 것입니다.

웹페이지는 실제로 알아야 할 알림을 전달하는 최고의 매체가 아닙니다."Zomg 라인을 따라 무언가를 설계하고 있다면 서버가 다운되었습니다!" 올바른 사람들에게 경고, 자동 전자 메일 또는 SMS 메시지가 트릭을 수행 할 수 있습니다.

내가 생각할 수 있는 유일한 방법은 메시지가 수신될 때 경고('새 메시지가 있습니다')와 같은 작업을 수행하는 것입니다.창이 최소화된 경우 작업 표시줄이 깜박이지만 원하지 않는 대화 상자도 열립니다.

GMail이 사용하는 접근 방식을 취하고 페이지 제목에 메시지 수를 표시해 보는 것은 어떨까요?

때때로 사용자는 새 메시지가 도착할 때 주의가 산만해지는 것을 원하지 않습니다.

                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 

window.focus()를 시도해 볼 수도 있습니다. 하지만 화면이 바뀌면 짜증스러울 수도 있습니다.

새로운 메시지가 나올 때마다 웹페이지 제목을 변경하여 사용자에게 알릴 수 있습니다.나는 브라우저 채팅 클라이언트에 대해 이 작업을 수행했으며 대부분의 사용자는 이것이 충분히 잘 작동한다고 생각했습니다.

document.title = "[user] hello world";

AFAIK, 일관성을 유지하는 좋은 방법은 없습니다.저는 IE 전용 웹 기반 IM 클라이언트를 작성하고 있었습니다.결국 우리는 대부분의 경우 작동하는 window.focus()를 사용하게 되었습니다.때로는 실제로 창이 포그라운드 앱에서 포커스를 훔치는 원인이 되기도 하는데, 이는 정말 짜증나는 일이 될 수 있습니다.

이러한 사용자는 새 메시지가 도착할 때 주의가 산만해지기를 원합니다.

회사 내부 프로젝트를 위한 앱을 작성하고 있는 것 같습니다.

알림 아이콘을 추가한 다음 새 메시지를 받을 때 멋진 팝업이나 풍선 팝업 등을 수행할 수 있는 작은 Windows 앱을 .net에서 작성하는 방법을 조사하고 싶을 수도 있습니다.

이것은 지나치게 어렵지 않으며 '트레이 아이콘을 어떻게 표시합니까?'와 '팝업 알림은 어떻게 표시합니까?'라고 질문하면 좋은 답변을 얻을 것이라고 확신합니다 :-)

기록에 따르면 (경고/프롬프트 대화 상자를 사용하는 것 외에는) JS에서 작업 표시줄을 플래시할 수 없다고 확신합니다. 이는 Windows에만 국한되고 JS는 실제로 그렇게 작동하지 않기 때문입니다.일부 IE 관련 Windows ActiveX 컨트롤을 사용할 수 있지만 그렇게 하면 가난한 사용자에게 IE를 손상시킬 수 있습니다.그러지 마세요 :-(

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top