Nano Hash - криптовалюты, майнинг, программирование

Заставить окно браузера мигать на панели задач

Как заставить браузер пользователя мигать / мигать / выделяться на панели задач с помощью JavaScript? Например, если я делаю запрос AJAX каждые 10 секунд, чтобы узнать, есть ли у пользователя какие-либо новые сообщения на сервере, я хочу, чтобы пользователь узнал об этом сразу же, даже если он в это время использует другое приложение.

Изменить: эти пользователи хотят, чтобы их отвлекали, когда приходит новое сообщение.

31.08.2008

  • странно, почта Yahoo делает это, интересно, как это 28.01.2011

Ответы:


1

это не заставит кнопку панели задач мигать изменяющимся цветом, но заголовок будет мигать, пока они не переместят мышь. Это должно работать на кросс-платформе, даже если у них это просто на другой вкладке.

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.

01.10.2008
  • Я не мог заставить это работать, как описано в IE 8. Заголовок постоянно мигал. Вместо использования onmousemove мне пришлось использовать onfocus и onblur, чтобы отслеживать, когда окно было в фокусе или нет, и останавливать мигание в функции onfocus. Поэтому, когда страница загружается, я регистрирую функции onfocus и onblur, которые переключают логическую переменную с фокусом. У меня есть еще одно логическое значение, чтобы отслеживать, когда началось мигание. В onfocus, если моргание началось, прекращаю. 25.03.2010
  • window.onmousemove не будет работать в IE, однако document.onmousemove работает. Использование onblur и onfocus тоже работает неплохо, но в Chrome есть странная ошибка при установке document.title в обработчике событий onfocus. См. Мое сообщение в блоге об этом, если хотите: heyman.info/2010/oct/7/ 07.10.2010
  • Похоже, это не работает в Chrome ... Я не думаю, что Chrome понимает, что пустая строка - это что-то. Если я использую дефис в качестве пустого сообщения, все работает нормально. 28.04.2011
  • это, кажется, складывается, если предупреждение запускается несколько раз. это приводит к тому, что интервал становится все быстрее и быстрее, а при удалении удаляется только один интервал. 22.06.2012
  • В Windows 7 изменение заголовка не мигает / не мигает на панели задач 30.04.2013
  • Спасибо за предупреждение об уведомлении HTML5. Однако ссылка кажется устаревшей; это не работает в последней версии Chrome. Однако справочник по MDN работал. 01.04.2015
  • Как передать этому аргументы (сообщение)? 17.10.2016
  • В Windows 10 изменение заголовка не отображается из-за маленькой плитки на панели задач, а также не мигает / мигает. Любое решение для этого? 02.07.2018

  • 2

    Я сделал плагин jQuery для мигающего уведомления сообщения в строке заголовка браузера. Вы можете указать различные параметры, такие как интервал мигания, продолжительность, если мигание должно прекратиться, когда окно / вкладка сфокусируется, и т. Д. Плагин работает в Firefox, Chrome, Safari, IE6, IE7 и IE8.

    Вот пример того, как его использовать:

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

    Если вы не используете jQuery, вы все равно можете посмотреть исходный код. code (есть несколько причудливых ошибок и крайних случаев, которые необходимо устранить при мигании заголовка, если вы хотите полностью поддерживать все основные браузеры).

    07.10.2010

    3

    Мой ответ "пользовательского интерфейса": вы уверены, что ваши пользователи хотят, чтобы их браузеры обновлялись, или вы думаете, что они этого хотят? Если бы я был тем, кто использовал ваше программное обеспечение, я был бы раздражен, если бы эти предупреждения появлялись очень часто и мешали мне.

    Если вы уверены, что хотите сделать это таким образом, используйте окно предупреждения javascript. Это то, что Google Calendar делает для напоминаний о мероприятиях, и они, вероятно, над этим задумались.

    Веб-страница действительно не лучшее средство для оповещений о необходимости. Если вы разрабатываете что-то вроде «ZOMG, серверы не работают!» оповещения, автоматические электронные письма или SMS-сообщения нужным людям могут помочь.

    01.10.2008
  • Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением. 26.06.2014
  • @secretformula действительно ли нужно выкапывать посты 5-летней давности и отмечать их как некачественные? 26.06.2014
  • @Taifun, он попал в очередь VLQF, так что да, это так. Мета тоже это обсуждала 26.06.2014
  • @secretformula, это действительно дает очень хороший ответ на вопрос: используйте JavaScript alert. 01.04.2015
  • неверно или нет, мне это не кажется ответом, но история показывает, что 2 модератора уже отклонили флаг NAA, поэтому я придерживаюсь здесь консенсуса. 07.05.2019

  • 4

    Предположительно вы можете сделать это в Windows с рычанием для Windows javascript API:

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

    Тем не менее, вашим пользователям придется установить рычание.

    В конечном итоге это станет частью механизма Google в виде NotificationAPI:

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

    Поэтому я бы порекомендовал пока использовать подход рычания, возвращаясь к обновлениям заголовков окон, если это возможно, и уже занимаясь разработкой попыток использовать API уведомлений Gears, когда он в конечном итоге станет доступным.

    01.10.2008

    5

    Единственный способ, которым я могу это сделать, - это сделать что-то вроде предупреждения («у вас есть новое сообщение»), когда сообщение получено. Панель задач будет мигать, если окно свернуто, но также откроется диалоговое окно, которое может вам не понадобиться.

    31.08.2008
  • Несоответствие между текущими браузерами - каждый ведет себя по-разному, и ни один из них не заставляет значок панели задач мигать (проверено Win8 - IE10, Chrome, Firefox) 11.12.2012

  • 6

    Почему бы не воспользоваться подходом, который использует GMail, и не показывать количество сообщений в заголовке страницы?

    Иногда пользователи не хотят отвлекаться, когда приходит новое сообщение.

    31.08.2008

    7

    Вы можете попробовать window.focus () - но это может раздражать, если экран переключается

    01.10.2008

    8

    вы можете изменять заголовок веб-страницы с каждым новым сообщением, чтобы предупредить пользователя. Я сделал это для клиента чата в браузере, и большинство пользователей сочли, что он работает достаточно хорошо.

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

    9

    AFAIK, нет хорошего способа сделать это последовательно. Я писал веб-клиент для обмена мгновенными сообщениями только для IE. В итоге мы использовали window.focus (), который работает большую часть времени. Иногда это действительно приводит к тому, что окно крадет фокус у приложения переднего плана, что может сильно раздражать.

    02.10.2008

    10

    Эти пользователи хотят, чтобы их отвлекали, когда приходит новое сообщение.

    Похоже, вы пишете приложение для внутреннего проекта компании.

    Возможно, вы захотите написать небольшое приложение для Windows в .net, которое добавляет значок уведомления, а затем может создавать необычные всплывающие окна, всплывающие окна или что-то еще, когда они получают новые сообщения.

    Это не слишком сложно, и я уверен, что если вы спросите ТАК «как мне показать значок в трее» и «как мне сделать всплывающие уведомления», вы получите отличные ответы :-)

    Для записи, я почти уверен, что (кроме использования диалогового окна с предупреждением / приглашением) вы не можете прошить панель задач в JS, так как это сильно зависит от Windows, а JS действительно так не работает. Возможно, вы сможете использовать некоторые элементы управления ActiveX Windows, специфичные для IE, но тогда вы навяжете IE своим бедным пользователям. Не делай этого :-(

    31.08.2008

    11

    Заставить окно браузера мигать на панели задач

    via Javascript 
    

    это невозможно!!

    13.02.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..