Как автор пользовательского скрипта, я хотел бы иметь возможность отправлять моим пользователям интерактивные уведомления вместо предупреждений в окнах подтверждения во многих ситуациях.
Используя патч от # 1193, это совсем несложно, кликабельная часть - это немного лишняя работа.
примечание: @icon из # 1096 можно использовать для значка уведомления.
Было бы неплохо иметь его за пределами непривилегированной модели DOM ... но консенсус в отношении того, какое уведомление может быть проблемой.
Фраза «отправлять уведомления» крайне расплывчата.
Предполагая, что вы имеете в виду, что это означает «предоставить интерфейс для nsIAlertsService », мне придется
Я думаю, что моя инстинктивная реакция будет заключаться в том, что это должен быть @require, который помещает его в DOM _этой_ страницы, иначе как пользователь должен знать, с какой страницы приходит сообщение (особенно когда может быть открыто несколько подходящих вкладок) ?
Предполагая, что вы имеете в виду «предоставить интерфейс для nsIAlertsService»
Да, это будет использовать то, что я реализовал в # 1193
тост исчез почти прежде, чем я успел остановиться, прочитать коробку и понять, что в ней написано.
Что ж, я люблю их, и я думаю, что автору пользовательского сценария лучше решить, полезно оно для его сценария или нет. Кроме того, я думаю, что продолжительность их появления - это настраиваемая настройка, по крайней мере, я знаю, что это так с osx.
Я думаю, что моя инстинктивная реакция была бы такой, что это должен быть @require, который помещает его в DOM этой страницы,
как бы это было сделать ..?
как пользователь должен узнать, с какой страницы пришло сообщение (особенно когда может быть открыто несколько подходящих вкладок)?
заголовком может быть имя пользовательского скрипта, а значком - @icon.
Они кажутся очень краткими и трудными для взаимодействия. Почти каждый раз (например) Firefox или Thunderbird сообщает мне об обновлении или новом сообщении, тост исчезает почти до того, как я успеваю остановить то, что я делаю, прочитать окно и выяснить, что в нем написано.
alert.totalOpenTime - это параметр, который вы хотите изменить, значение по умолчанию - 4 секунды, мне обычно нравится 30 секунд.
Вы бы хотели добавить поддержку пользовательских изображений?
function GM_notification (aMsg, aTitle, aImg) { var title = aTitle? "" + aTitle: "Greasemonkey"; var message = aMsg? "" + aMsg: ""; var image = aImg? "" + aImg: "chrome: //greasemonkey/skin/icon_medium.png"; пытаться { alertsServ.showAlertNotification ( изображение, title, message, false, "", null); // Это выглядит лучше на ubuntu, чем на windows (http://i55.tinypic.com/2jfwtg9.png) } catch (e) { // В случае, например, если Growl не установлен на Mac. предупреждение (заголовок + "\ n" + сообщение); } };
Обманывал # 1271
голосование не исправит это
голосование wontfix для этого
Почему?
Арантий писал :
Дело в том, что функция, которую он заменил, зависела от строки состояния, которая исчезла в Firefox 4. В настоящее время это не более того.
Эта функция была бы полезна для сценариев, которые перенаправляют DOM несколько раз и в конечном итоге попадают на изображение вместо htm / l и по-прежнему позволяют уведомлять конечного пользователя о том, что произошла определенная деталь. Как мы все знаем, user.js работает только с файлами .htm / l, а не с изображениями.
Голосование +1 за предоставление функции API sandbox
поскольку это очень просто сделать с дополнительными преимуществами.
РЕДАКТИРОВАТЬ: для решения запроса от GM-Script-Writer-62850 значение @icon
можно легко использовать вместе с этим.
Firefox 22 поддерживает веб-уведомления: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22.
+1
Firefox 22 поддерживает веб-уведомления: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/22.
Но я думаю, что это серьезная ошибка (https://bugzilla.mozilla.org/show_bug.cgi?id=875114, соответственно https://bugzilla.mozilla.org/show_bug.cgi?id=862395). Тогда я могу закрыть: https://github.com/greasemonkey/greasemonkey/issues/1742
В некоторых случаях вместо этого мы можем использовать веб-уведомления, которые можно добавить в Firefox с помощью различных надстроек, таких как средство уведомления о вкладках .
В некоторых случаях вместо этого мы можем использовать веб-уведомления, которые можно добавить в Firefox с помощью различных надстроек, таких как средство уведомления о вкладках.
Но с помощью API веб-уведомлений скрипт может выдавать всплывающие уведомления только в том случае, если пользователь разрешает это делать сайту. У пользователя нет выбора, чтобы отключить уведомления с веб-сайта, но включить их из скрипта.
Да, я полностью упустил этот аспект. : +1:
Обходным решением может быть использование секретного пароля и настройка средства уведомления вкладки для отображения только тех уведомлений, которые его включают. В зависимости от вредоносности сайта одного странного символа Юникода может быть достаточно, а может быть даже и невидимого.
Опять же, этот API необходим, поскольку веб-сайт начинает показывать уведомления, которые пользователи хотят их заблокировать. Но мне тоже нужно показывать уведомления. В результате у пользователя нет выбора между отключением всех этих уведомлений или их включением. Мне нужен этот API, чтобы пользователь мог разрешать уведомления только из пользовательского скрипта.
Ветвь тестирования:
https://github.com/janekptacijarabaci/greasemonkey/tree/_testBranch_GM_notification
Синхронизировать API с Tampermonkey
См. Также https://tampermonkey.net/documentation.php#GM_notification.
Это просто вещь для тестирования!
Использует функцию « PopupNotifications » (! = «Web (HTML5) Notification API»)!
(Мне эта функция не нужна - пока подожду, чтобы решить эту проблему: ошибка 862395 )
@janekptacijarabaci Спасибо, но я обнаружил, что он глючит ...
(Я не уверен, когда ошибка 862395 будет исправлена. Но я думаю, что лучше иметь исправную, но работоспособную, чем ничего.)
Обновлена тестовая ветка:
Всплывающие уведомления => Уведомления на рабочем столе
@janekptacijarabaci
Спасибо.
Насколько я понимаю, в настоящее время реализация в тестовой ветке разрешает уведомление только тогда, когда пользователь дает разрешение на это сайту. Это похоже Notification
прямой вызов
Я не уверен, что вы считаете этим api. Но я надеюсь, что этот может работать с другим контролем разрешений для скриптов контента с веб-сайта. (И это сейчас TM. Они всегда позволяют отображать уведомления с помощью пользовательского скрипта)
@tiansh
Вопрос в том, как это сделать ...
Уведомление на рабочем столе в Chrome (Tampermonkey) отличается:
https://developer.chrome.com/extensions/desktop_notifications
Системному участнику (хром-привилегированному) должно быть предоставлено разрешение. Но...
Использование передачи сообщений (особенно под e10s on) - убивает все события (onclick, ondone).
Эта функция может использоваться следующим образом:
https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/sandbox.js#L75
(https://github.com/greasemonkey/greasemonkey/blob/3.9/modules/menucommand.js#L90)
но я оставляю это сообществу / арантиусу (я не уверен, как это сделать лучше всего).
(Не знаю, захочет ли кто-нибудь это сделать: # 2275 - http://arewewebextensionsyet.com/#notifications)
У меня сейчас нет лучшего представления ...
Однако я предпринял некоторые попытки ...
Отредактировано:
Но ... Запускать GM_notification () дважды (и более) подряд у меня не работает.
См. Также ошибку 1263155 ( 1294332 , 1306822 ) ...
К вашему сведению ...
РАЗРЕШЕНО ФИКСИРОВАННОЕ
https://bugzilla.mozilla.org/show_bug.cgi?id=862395
Итак ... Реализовано или нет?
@VBelozyorov , не думаю, что это было реализовано для 3.х. Но для 4.x # 2590
Самый полезный комментарий
К вашему сведению ...
РАЗРЕШЕНО ФИКСИРОВАННОЕ
https://bugzilla.mozilla.org/show_bug.cgi?id=862395