सवाल कार्य बार में ब्राउज़र विंडो झपकी बनाओ


मैं जावास्क्रिप्ट का उपयोग कर टास्क बार में उपयोगकर्ता का ब्राउजर ब्लिंक / फ्लैश / हाइलाइट कैसे करूं? उदाहरण के लिए, यदि मैं सर्वर पर कोई नया संदेश देखने के लिए प्रत्येक 10 सेकंड में AJAX अनुरोध करता हूं, तो मैं चाहता हूं कि उपयोगकर्ता तुरंत इसे जान सके, भले ही वह उस समय एक और एप्लिकेशन का उपयोग कर रहा हो।

संपादित करें: जब कोई नया संदेश आता है तो ये उपयोगकर्ता विचलित होना चाहते हैं।


98
2017-08-31 21:22


मूल


अजीब, याहू मेल यह करता है, मुझे आश्चर्य है कि कैसे था - Ayyash


जवाब:


यह टास्कबार बटन को रंग बदलने में फ्लैश नहीं करेगा, लेकिन जब तक वे माउस को स्थानांतरित नहीं करेंगे तब तक शीर्षक चालू और बंद हो जाएगा। यह क्रॉस प्लेटफार्म काम करना चाहिए, और यहां तक ​​कि अगर वे इसे एक अलग टैब में रखते हैं।

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 अधिसूचनाएं


80
2017-10-01 04:48



मैं इसे आईई 8 में वर्णित अनुसार काम नहीं कर सका। यह हमेशा के लिए शीर्षक को झपकी लगा रहा था। ऑनमॉसमोव का उपयोग करने के बजाय, मुझे ऑनफोकस फ़ंक्शन में ब्लिंकिंग को रोकने या बंद करने का ट्रैक रखने के लिए ऑनफोकस और ऑनब्लर का उपयोग करना पड़ा था। तो जब पृष्ठ लोड होता है, तो मैं ऑनफोकस और ऑनब्लर फ़ंक्शन पंजीकृत करता हूं जो एक बूलियन "केंद्रित" चर टॉगल करते हैं। झपकी शुरू होने पर मुझे ट्रैक करने के लिए एक और बूलियन है। ऑनफोकस में, अगर झपकी शुरू हो गई है, तो मैं इसे रोकता हूं। - Peter M
यह क्रोम में काम नहीं करता है ... मुझे नहीं लगता कि क्रोम समझता है कि खाली स्ट्रिंग कुछ भी है। अगर मैं "खाली" संदेश के रूप में एक हाइफ़न का उपयोग करता हूं, तो यह ठीक काम करता है। - John Bubriski
अगर चेतावनी कई बार ट्रिगर होती है तो यह ढेर लग रहा है। इसके परिणामस्वरूप अंतराल तेजी से और तेज़ हो जाता है, फिर जब आप हटाते हैं, तो यह केवल एक अंतराल को हटा देता है। - Horse
@ हॉर्स: अपडेट किया गया। - nickf
विंडोज 7 में, टाइटलबार में शीर्षक बदलना / झपकी नहीं है - Chand


मैंने एक बनाया है jQuery प्लगइन ब्राउज़र शीर्षक पट्टी में अधिसूचना संदेशों को झपकी देने के उद्देश्य से। यदि खिड़की / टैब फोकस हो जाता है, तो ब्लिंकिंग बंद होनी चाहिए, तो आप अंतराल, अवधि को ब्लिंक करने जैसे विभिन्न विकल्पों को निर्दिष्ट कर सकते हैं। प्लगइन फ़ायरफ़ॉक्स, क्रोम, सफारी, आई 6, आई 7 और आईई 8 में काम करता है।

इसका उपयोग कैसे करें इसका एक उदाहरण यहां दिया गया है:

$.titleAlert("New mail!", {
    requireBlur:true,
    stopOnFocus:true,
    interval:600
});

यदि आप jQuery का उपयोग नहीं कर रहे हैं, तो भी आप इसे देखना चाहेंगे सोर्स कोड (यदि आप सभी प्रमुख ब्राउज़रों का पूरी तरह से समर्थन करना चाहते हैं तो शीर्षक क्लिंकिंग करते समय आपको कुछ कर्कश बग और किनारे के मामलों के आसपास काम करने की आवश्यकता होती है)।


53
2017-10-07 22:50



अच्छा कार्य! आश्चर्यजनक है कि इसका उपयोग करना कितना आसान है - Tiago Deliberali Santos


माना जाता है कि आप खिड़कियों पर जावास्क्रिप्ट एपीआई के लिए खिड़कियों पर ऐसा कर सकते हैं:

http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api

हालांकि आपके उपयोगकर्ताओं को उगाना स्थापित करना होगा।

आखिरकार यह अधिसूचनाएपीआई के रूप में, Google गियर्स का हिस्सा बनने जा रहा है:

http://code.google.com/p/gears/wiki/NotificationAPI

तो मैं अब के लिए ग्रिल दृष्टिकोण का उपयोग करने की सिफारिश करता हूं, यदि संभव हो तो खिड़की के शीर्षक अपडेट पर वापस आना, और गियर अधिसूचना एपीआई का उपयोग करने के प्रयासों में पहले से ही इंजीनियरिंग, जब यह अंततः उपलब्ध हो जाता है।


6
2017-10-01 05:14





मेरा "यूजर इंटरफेस" प्रतिक्रिया है: क्या आप निश्चित हैं आपके उपयोगकर्ता अपने ब्राउज़र चमकाने, या करना चाहते हैं आपको लगता है यही वही है जो वे चाहते हैं? अगर मैं आपके सॉफ़्टवेयर का उपयोग कर रहा था, तो मुझे पता है कि अगर मैं ये अलर्ट अक्सर हुआ और मेरे रास्ते में आया तो मुझे नाराज लगेगा।

यदि आप सुनिश्चित हैं कि आप इसे इस तरह से करना चाहते हैं, तो जावास्क्रिप्ट अलर्ट बॉक्स का उपयोग करें। ईवेंट कैलेंडर अनुस्मारक के लिए Google कैलेंडर यही करता है, और संभवतः उन्होंने इसमें कुछ विचार डाला।

एक वेब पेज वास्तव में जरूरी अलर्ट के लिए सबसे अच्छा माध्यम नहीं है। यदि आप "ज़ूम के रूप में कुछ डिजाइन कर रहे हैं, तो सर्वर नीचे हैं!" अलर्ट, स्वचालित ई-मेल या सही संदेश पर एसएमएस संदेश चाल कर सकते हैं।


4
2017-10-01 04:34



यह प्रश्न का उत्तर नहीं देता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। - secretformula
@secretformula 5 साल पुरानी पोस्ट खोदना और उन्हें निम्न गुणवत्ता के रूप में ध्वजांकित करना वास्तव में आवश्यक है? - Taifun
@Tifun यह वीएलक्यूएफ कतार में आया था तो हाँ यह है। मेटा ने भी इस पर चर्चा की है - secretformula
@secretformula, यह वास्तव में प्रश्न का एक बहुत अच्छा जवाब प्रदान करता है: एक जावास्क्रिप्ट का उपयोग करें alert। - Sam
जावास्क्रिप्ट अलर्ट का उपयोग पोस्ट के प्रश्न को हल नहीं कर रहा है ... - Yu-Chih


ऐसा करने का एकमात्र तरीका यह है कि संदेश प्राप्त होने पर चेतावनी ('आपके पास एक नया संदेश') जैसा कुछ कर रहा है। यदि खिड़की कम हो जाती है तो यह टास्कबार को फ्लैश करेगा, लेकिन यह एक संवाद बॉक्स भी खुल जाएगा, जिसे आप नहीं चाहते हैं।


3
2017-08-31 21:34



वर्तमान ब्राउज़रों में असंगत - प्रत्येक अलग-अलग व्यवहार करता है और कोई भी टास्कबार आइकन फ़्लैश नहीं करता है (परीक्षण Win8 - IE10, क्रोम, फ़ायरफ़ॉक्स) - danwellman


जीमेल का दृष्टिकोण क्यों नहीं लेता है और पेज शीर्षक में संदेशों की संख्या क्यों दिखाता है?

कभी-कभी जब कोई नया संदेश आता है तो उपयोगकर्ता विचलित नहीं होना चाहते हैं।


3
2017-08-31 22:00





                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 

3
2017-07-24 16:20





आप window.focus () को आजमा सकते हैं - लेकिन यदि स्क्रीन चारों ओर स्विच हो तो यह परेशान हो सकती है


2
2017-10-01 04:47



जब हमारे पास टैब होते हैं तो यह काम नहीं करता है - Shashwat


आप उपयोगकर्ता को चेतावनी देने के लिए प्रत्येक नए संदेश के साथ वेब पेज का शीर्षक बदल सकते हैं। मैंने ब्राउज़र चैट क्लाइंट के लिए ऐसा किया और अधिकांश उपयोगकर्ताओं ने सोचा कि यह काफी अच्छा काम करता है।

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

1
2017-09-01 00:02