টাস্ক বারে ব্রাউজার উইন্ডোটি ঝলকান


104

আমি কীভাবে জাভাস্ক্রিপ্ট ব্যবহার করে কোনও ব্যবহারকারীর ব্রাউজারটিকে টাস্ক বারে ঝলকানো / ফ্ল্যাশ / হাইলাইট করব? উদাহরণস্বরূপ, যদি আমি প্রতি 10 সেকেন্ডে একটি এজেএক্স অনুরোধ করি যদি ব্যবহারকারীর সার্ভারে কোনও নতুন বার্তা রয়েছে কিনা তা দেখার জন্য, আমি চাই যে ব্যবহারকারী সেই মুহুর্তে এটি অন্য কোনও অ্যাপ্লিকেশন ব্যবহার করছেন, তা অবিলম্বে এটি জানানো উচিত।

সম্পাদনা: কোনও নতুন বার্তা এলে এই ব্যবহারকারীরা বিভ্রান্ত হতে চান।


7
অদ্ভুত, ইয়াহু মেল এটি করে, আমি আশ্চর্য হই যে কী
আয়শ

উত্তর:


86

এটি রঙ বদলে টাস্কবারের বোতামটিকে ফ্ল্যাশ করবে না, তবে তারা মাউসটি সরিয়ে না দেওয়া পর্যন্ত শিরোনামটি জ্বলজ্বল করবে। এটি ক্রস প্ল্যাটফর্মের কাজ করা উচিত এবং এমনকি যদি তাদের কেবল এটি অন্য ট্যাবে থাকে।

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;
        }
    };
}());

আপডেট : আপনি এইচটিএমএল 5 বিজ্ঞপ্তিগুলি ব্যবহার করতে চাইতে পারেন ।


1
আইই 8 তে বর্ণিত হিসাবে আমি এটি কাজ করতে পারি না এটি চিরকালের জন্য শিরোনামটি জ্বলতে থাকল। Onmousemove ব্যবহার করার পরিবর্তে, উইন্ডোটি কখন ফোকাসে ছিল বা না সেদিকে নজর রাখার জন্য আমাকে অনফোকাস এবং অনব্লুর ব্যবহার করতে হয়েছিল এবং অনফোকাস ফাংশনটিতে ঝলকানি বন্ধ করতে হয়েছিল। সুতরাং পৃষ্ঠাটি লোড হওয়ার পরে, আমি অনফোকাস এবং অন্বলুর ফাংশনগুলি নিবন্ধন করি যা একটি বুলিয়ান "ফোকাসড" ভেরিয়েবল টগল করে। ব্লিঙ্কিং শুরু হয়ে গেলে আমার ট্র্যাক করার জন্য আমার আরেকটি বুলিয়ান রয়েছে। অনফোকাসে, যদি ঝলকানি শুরু হয়, তবে আমি এটি বন্ধ করি।
পিটার এম

4
এটি ক্রোমে কাজ করে বলে মনে হচ্ছে না ... আমি মনে করি না যে ক্রোম বুঝতে পারে যে খালি স্ট্রিংটি কিছু। যদি আমি একটি হাইফেনটিকে "ফাঁকা" বার্তা হিসাবে ব্যবহার করি তবে এটি ঠিকঠাক কাজ করে।
জন Bubriski

1
সতর্কতাটি একাধিকবার ট্রিগার করা হলে এটি স্ট্যাক করে মনে হচ্ছে। এর ফলে বিরতি দ্রুত ও দ্রুততর হয়, এরপরে আপনি যখন মুছে ফেলেন এটি কেবলমাত্র একটি একক বিরতি সরিয়ে দেয়।
ঘোড়া

2
উইন্ডোজ 7-এ, শিরোনাম পরিবর্তন টাস্কবারে জ্বলজ্বল / ফ্ল্যাশ হয় না
চাঁদ

1
আপনি এটি কীভাবে যুক্তি (বার্তা) পাস করবেন?
shinzou

54

ব্রাউজারের শিরোনাম বারে বিজ্ঞপ্তি বার্তা ঝলকানোর উদ্দেশ্যে আমি একটি jQuery প্লাগইন তৈরি করেছি । উইন্ডো / ট্যাবটি কেন্দ্রীভূত হওয়ার পরে ঝলকানো বন্ধ হওয়া উচিত যদি আপনি জ্বলজ্বলে বিরতি, সময়কাল, ইত্যাদি বিভিন্ন বিকল্প উল্লেখ করতে পারেন প্লাগইন ফায়ারফক্স, ক্রোম, সাফারি, আই 6, আই 7 এবং আই 8 তে কাজ করে।

এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে এখানে একটি উদাহরণ দেওয়া হল:

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

আপনি যদি jQuery ব্যবহার না করে থাকেন তবে আপনি এখনও সোর্স কোডটি দেখতে চাইতে পারেন (আপনি কয়েকটি বড় ব্রাউজারকে পুরোপুরি সমর্থন করতে চাইলে শিরোনাম জ্বলজ্বল করার সময় আপনার চারপাশে কাজ করা দরকার) qu


6

আমার "ইউজার ইন্টারফেস" প্রতিক্রিয়াটি হ'ল: আপনি কি নিশ্চিত যে আপনার ব্যবহারকারীরা তাদের ব্রাউজারগুলি ঝলকানি চান, বা আপনি কি মনে করেন যা তারা চান? আমি যদি আপনার সফ্টওয়্যারটি ব্যবহার করি তবে আমি জানতাম যে এই সতর্কতাগুলি প্রায়শই ঘটে এবং আমার পথে চলে গেলে আমি বিরক্ত হব।

আপনি যদি নিশ্চিত হন যে আপনি এটি এটি করতে চান তবে একটি জাভাস্ক্রিপ্ট সতর্কতা বাক্স ব্যবহার করুন। ইভেন্টের অনুস্মারকগুলির জন্য গুগল ক্যালেন্ডার এটি করে এবং তারা সম্ভবত এতে কিছু চিন্তাভাবনা রেখে।

একটি ওয়েব পৃষ্ঠাটি জানা-জানা সতর্কতার জন্য সত্যই সর্বোত্তম মাধ্যম নয়। আপনি যদি "ZOMG" এর লাইনে কিছু ডিজাইন করেন তবে সার্ভারগুলি ডাউন আছে! " সতর্কতা, স্বয়ংক্রিয় ইমেল বা সঠিক লোকদের এসএমএস বার্তাগুলি কৌশলটি করতে পারে।


11
এটি প্রশ্নের উত্তর দেয় না। কোনও লেখকের কাছ থেকে সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন।
সিক্রেটফর্মুলা

2
@ সেক্রেটফর্মুলা 5 বছরের পুরানো পোস্টগুলি খনন করা এবং এগুলি নিম্ন মানের হিসাবে পতাকাঙ্কিত করা সত্যিই প্রয়োজনীয়?
তাইফুন

2
@ তাইফান এটি ভিএলকিউএফ কাতারে উঠে এসেছে তাই হ্যাঁ। মেটা এটি নিয়েও আলোচনা করেছে
সিক্রেটফর্মুলা

@ সেক্রেটফর্মুলা, এটি আসলে প্রশ্নের খুব ভাল উত্তর সরবরাহ করে: একটি জাভাস্ক্রিপ্ট ব্যবহার করুন alert
স্যাম

ভুল বা না, এটি আমার কাছে উত্তর বলে মনে হচ্ছে না, তবে ইতিহাস দেখায় যে 2 জন মডারেটর ইতিমধ্যে এনএএ পতাকা প্রত্যাখ্যান করেছে, তাই আমি এখানে sensকমত্য অনুসরণ করছি।
জিন-ফ্রানসোয়া ফ্যাব্রে

6

মনে হয় আপনি উইন্ডোজ জাভাস্ক্রিপ্ট এপিআইয়ের জন্য গ্রোলের সাহায্যে উইন্ডোজে এটি করতে পারেন:

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

আপনার ব্যবহারকারীদের যদিও গ্রল ইনস্টল করতে হবে।

অবশেষে এটি নোটিফিকেশনএপি আকারে গুগল গিয়ার্সের অংশ হতে চলেছে:

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

সুতরাং আমি আপাতত গ্রল অ্যাপ্রোচ ব্যবহার করার পরামর্শ দিচ্ছি, সম্ভব হলে উইন্ডো শিরোনাম আপডেটগুলিতে ফিরে গিয়ে এবং ইতিমধ্যে যখন এটি উপলব্ধ হয় তখনই ইতিমধ্যে গিয়ারস নোটিফিকেশন এপিআই ব্যবহারের প্রয়াসে ইঞ্জিনিয়ারিং।


5
                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

আমি এটি করার একমাত্র উপায় হ'ল বার্তাটি পাওয়ার পরে সতর্কতার মতো কিছু করা ('আপনার একটি নতুন বার্তা রয়েছে')। উইন্ডোটি ছোট করা থাকলে এটি টাস্কবারটিকে ফ্ল্যাশ করবে, তবে এটি একটি ডায়ালগ বক্সও খুলবে, যা আপনি চাইবেন না।


1
বর্তমান ব্রাউজারগুলিতে অসঙ্গতিপূর্ণ - প্রত্যেকে আলাদাভাবে আচরণ করে এবং
কোনওটিই

3

GMail যে পন্থাটি ব্যবহার করে এবং পৃষ্ঠা শিরোনামে বার্তাগুলির সংখ্যা দেখায় না কেন?

কখনও কখনও নতুন বার্তা এলে ব্যবহারকারীরা বিভ্রান্ত হতে চান না।


2

আপনি উইন্ডো.ফোকাস () চেষ্টা করতে চাইতে পারেন - তবে স্ক্রিনটি চারপাশে স্যুইচ করলে এটি বিরক্তিকর হতে পারে


1

আপনি ব্যবহারকারীকে সতর্ক করতে প্রতিটি নতুন বার্তা দিয়ে ওয়েব পৃষ্ঠার শিরোনাম পরিবর্তন করতে পারেন। আমি এটি একটি ব্রাউজার চ্যাট ক্লায়েন্টের জন্য করেছি এবং বেশিরভাগ ব্যবহারকারীরা ভেবেছিলেন এটি যথেষ্ট পরিমাণে কার্যকর হয়েছে।

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

1

আফাইক, ধারাবাহিকতার সাথে এটি করার ভাল কোনও উপায় নেই। আমি একটি আইই কেবল ওয়েব-ভিত্তিক আইএম ক্লায়েন্ট লিখছিলাম। আমরা উইন্ডো.ফোকাস () ব্যবহার করে শেষ করেছি, যা বেশিরভাগ সময় কাজ করে। কখনও কখনও এটি উইন্ডোটি ফোরগ্রাউন্ড অ্যাপ্লিকেশন থেকে ফোকাস চুরি করতে পারে, যা সত্যই বিরক্তিকর হতে পারে।


0

কোনও নতুন বার্তা এলে এই ব্যবহারকারীরা বিভ্রান্ত হতে চান।

মনে হচ্ছে আপনি কোনও অভ্যন্তরীণ সংস্থা প্রকল্পের জন্য একটি অ্যাপ্লিকেশন লিখছেন।

আপনি নেটগুলিতে একটি ছোট উইন্ডোজ অ্যাপ্লিকেশন লিখে তদন্ত করতে চাইতে পারেন যা একটি নোটিফাই আইকন যুক্ত করে এবং তারপরে নতুন বার্তা পেলে অভিনব পপআপ বা বেলুন পপআপ বা যা কিছু করতে পারে।

এটি অত্যধিক কঠিন নয় এবং আমি নিশ্চিত যে আপনি যদি 'আমি একটি ট্রে আইকনটি কীভাবে দেখাব' এবং 'আমি কীভাবে পপ-আপ বিজ্ঞপ্তি করব' জিজ্ঞাসা করেন তবে আপনি দুর্দান্ত কিছু উত্তর পাবেন :-)

রেকর্ডের জন্য, আমি বেশ নিশ্চিত যে (সতর্কতা / প্রম্পট ডায়ালগ বাক্স ব্যবহার করা ব্যতীত) আপনি জেএসের টাস্কবারটি ফ্ল্যাশ করতে পারবেন না, কারণ এটি ভারি উইন্ডোজ নির্দিষ্ট, এবং জেএস সত্যিই এর মতো কাজ করে না। আপনি কিছু আইআই-নির্দিষ্ট উইন্ডোজ অ্যাক্টিভ্যাক্স নিয়ন্ত্রণ ব্যবহার করতে সক্ষম হতে পারেন, তবে তারপরে আপনি আপনার দরিদ্র ব্যবহারকারীদের জন্য IE চাপিয়ে দেন। এটি করবেন না :-(


0
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();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.