2008-08-31 10 views
97

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

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

+6

अजीब, याहू मेल यह होता है, मैं आश्चर्य है कि कैसे यद्यपि – Ayyash

उत्तर

79

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

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 notifications का उपयोग कर को देखने के लिए चाहते हो सकता है।

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

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

+1

है, मैं इसे आईई 8 में वर्णित अनुसार काम नहीं कर सका। यह हमेशा के लिए शीर्षक को झपकी देता रहा। ऑनमॉसमोव का उपयोग करने के बजाय, मुझे ऑनफोकस फ़ंक्शन में ब्लिंकिंग को रोकने या बंद करने का ट्रैक रखने के लिए ऑनफोकस और ऑनब्लर का उपयोग करना पड़ा था। तो जब पृष्ठ लोड होता है, तो मैं ऑनफोकस और ऑनब्लर फ़ंक्शन पंजीकृत करता हूं जो एक बूलियन "केंद्रित" चर टॉगल करते हैं। झपकी शुरू होने पर मुझे ट्रैक करने के लिए एक और बूलियन है। ऑनफोकस में, अगर झपकी शुरू हो गई है, तो मैं इसे रोकता हूं। –

+0

window.onmousemove IE में काम नहीं करेगा, हालांकि document.onmousemove काम करता है।ऑनब्लॉक और ऑनफोकस का उपयोग करना बहुत अच्छा काम करता है, लेकिन ऑनफोकस इवेंट हैंडलर में document.title को सेट करते समय क्रोम में एक अजीब बग है। यदि आप चाहें तो मेरे ब्लॉग पोस्ट को इसके बारे में देखें: http://heyman.info/2010/oct/7/google-chrome-bug-when-setting-document-title/ – heyman

+4

यह क्रोम में काम नहीं करता है .. मुझे नहीं लगता कि क्रोम समझता है कि खाली स्ट्रिंग कुछ भी है। अगर मैं "खाली" संदेश के रूप में एक हाइफ़न का उपयोग करता हूं, तो यह ठीक काम करता है। –

3

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

+1

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

3

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

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

0

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

ऐसा लगता है कि आप एक आंतरिक कंपनी प्रोजेक्ट के लिए एक ऐप लिख रहे हैं।

आप .NET में एक छोटे से विंडोज ऐप को लिखने की जांच करना चाहते हैं जो एक अधिसूचना आइकन जोड़ता है और फिर फैंसी पॉपअप या गुब्बारे पॉपअप या जो भी हो, जब उन्हें नए संदेश मिलते हैं।

यह ज्यादा कठिन नहीं है और मुझे यकीन है कि अगर आप ऐसा पूछना 'मैं एक ट्रे आइकन कैसे दिखाते हैं' और 'मैं कैसे सूचनाएं पॉप अप करते' आप :-)

कुछ महान जवाब मिल जाएगा

रिकॉर्ड के लिए, मुझे पूरा यकीन है कि (अलर्ट/प्रॉम्प्ट डायलॉग बॉक्स का उपयोग करने के अलावा) आप जेएस में टास्कबार को फ्लैश नहीं कर सकते हैं, क्योंकि यह बहुत अधिक विंडोज़ विशिष्ट है, और जेएस वास्तव में ऐसा काम नहीं करता है। आप कुछ आईई-विशिष्ट विंडोज़ सक्रियक्स नियंत्रणों का उपयोग करने में सक्षम हो सकते हैं, लेकिन फिर आप अपने खराब उपयोगकर्ताओं पर आईई लगाते हैं। कि :-(

1

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

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

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

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

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

+9

यह एक जवाब प्रदान नहीं करता है सवाल के लिए। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। – secretformula

+0

@secretformula 5 साल पुरानी पोस्ट खोदना और उन्हें कम गुणवत्ता के रूप में चिह्नित करना वास्तव में आवश्यक है? – Taifun

+2

@ टाईफुन यह वीएलक्यूएफ कतार में आया था, इसलिए यह है। मेटा ने भी – secretformula

2

आप window.focus() का उपयोग करना चाहेंगे - लेकिन यह कष्टप्रद है, तो स्क्रीन के चारों ओर

+1

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

6

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

अंततः इस, गूगल गियर का हिस्सा बनने के लिए जा रहा है NotificationAPI के रूप में:

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

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

1

AFAIK, स्थिरता के साथ ऐसा करने का कोई अच्छा तरीका नहीं है। मैं एक आईई केवल वेब आधारित आईएम क्लाइंट लिख रहा था। हम window.focus() का उपयोग कर समाप्त हो गए, जो ज्यादातर समय काम करता है। कभी-कभी यह वास्तव में विंडो को अग्रभूमि ऐप से फोकस करने का कारण बनता है, जो वास्तव में परेशान हो सकता है।

53

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

इसका इस्तेमाल करने के बारे में एक उदाहरण है:

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

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

+4

महान काम! आश्चर्यजनक है कि इसका उपयोग करना कितना आसान है –

2
   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 
संबंधित मुद्दे