Pull to refresh

Comments 58

Никогда не напрягался модальностью алертов, но, черт подери, классно сделано!
В качестве UserJS — не встречал.

А просто JS (не UserJS) решений полно. На Хабре сообщения об ошибках выводятся похожим способом.
просто интересно, а зачем?
Хотя бы потому что 20% людей используют еще его.
ну так пускай используют, кто ж им не дает то.
и?
не думаю, что люди, которые знают, что такое скрипт и грисманки используют ие6
У модальных диалогов есть особенность прерывать поток исполнения — с таким решением такое поведение измениться.
UFO just landed and posted this here
а вот представьте что будет с вашим браузером и таким User JS когда вы попадете (мб случайно) на сайты розыгрыши… аля «Вы сюда попали вам не уйти (жмакаем ок) — появляется сл сообщение такого рода»… а когда кнопки ок нету и это все будет оч быстро происходить? ваш браузер может не выдержать :)
В таких случаях диалог сделают не модальным
а автор скрипта и автор новости — один и тот же человек?

мне вот что интересно — ну почему нельзя сделать, чтобы алерт блокировал только один таб, а не весь браузер?
ну собственно это из-за того, что браузере все табы работают в одном потоке. в Хроме, насколько я помню, такой проблемы уже не стоит. Но надо проверить
кстати похоже что автор новости и скрипта — один человек. у него в инфо на юзерскриптс написан сайт, совпадающий с ником на хабре
Да, один и то же :-)

А смысл блокировки?
не, отличное расширение — я себе уже поставил.
и согласен, что алерту блокировка бывает крайне редко нужна.
UFO just landed and posted this here
Это наверное потому что AdBlock Plus
UFO just landed and posted this here
сижу я, Хабру читаю, а тут «какой-то сайт с рефератами» в соседнем табе по таймауту мне алерт выдает!
алерт — он ведь к определенной странице относится, а не к моему браузеру.
если бы не AlertStopper, то даже случайная ошибка в собственном скрипте, во время дебагинга, заставила бы меня перезапускать все вкладки в браузера.
Зачем блокировать таб, если можно его не блокировать? Мой скрипт как раз не блокирует.
с помощью вашего скрипта я смог сделать себе пустую подпись на gmail =)
ваш алерт не всегда вілазит поверх всех окон :) сделайте ему z-index побольше :)
Это на каком сайте? z-index: 9999 хватит? :-)
Не разбираюсь в js.
При сохранении настроек в гуглопоиске вылеает алерт — его скрипт успешно заменяет.
А вот строчка <script>alert('Ky-Ky!');</script> все равно вызывает блокирующий диалог.
Забыл: Opera 10 final.
Починено! Но только для Оперы.

Важное примечание: скрипт должен называться nice-alert.js, без «user». Иначе Опера будет работать в режиме совсестимости с Gresemonkey и запускать скрипты позже.

Теперь на early-run.html все алерты в Опере должня быть nice.
Да, работает. Спасибо еще раз за скрипт.
потверждаю на Opera 10.10 beta
Есть проблема с ранним запуском. UserJS срабатывает слишком поздно.

Я починю это для Оперы. А вот для Файрфокса не получится, так как Greasemonkey начинает работать всегда после загрузки страницы.
Интересно, можно ли создать аналог Greasemonkey, который запускается до загрузки страницы?
Я планирую написать add-on для Firefox-а. Это заодно и решит проблему c перекрыванием стилей.
ну еще можно с таким скриптом заспамить алертами и вереница уползет далеко вниз за пределы страницы. может какую-нибудь опцию типа закрыть все?
Я пока не встречал сайтов, где такое происходит. Когда встречу, чего-нибудь придумаю.
ну это пресловутые сайты шутки ) а у вас на юзерскрипт я просто зажал enter на поле ввода и вылезло много-много )
а если в цикле случайно алерт закрадётся — браузер не упадёт?
Мне кажется, весьма спорная штука… Конечно, так в большинстве случаев удобнее, но вдруг там действительно важное сообщение, которое необходимо прочитать… а справа там «мертвая зона» для глаз, можно просто не заметить это сообщение… Кнопки ОК там нет, значит, сообщение пропадёт само через несколько секунд…

Решил себе всё же не ставить…
Плохо только, что стили документа к нему применяются…
На каких сайтах с этим проблемы?
Это чтобы исправить, нужно все существующие стили c !important перечислять…
Да, почему-то не работает. Я пока не могу понять почему.
Для третьего хрома: var w = contentWindow || window.wrappedJSObject || window;
в четверке (dev build) не хочет.
Спасибо.

Вы знаете что именно нужно поменять в nice-alert.user.js, чтобы он заработал? Я прочитал всю дискуссию, и мне не стало ясно в чём проблема.

Если я добавляю alert(123) в конец самого скрипта, то он работает. Если вызываю alert со страницы, то нет.
Проблема в том что window в скрипте и на веб-странице разные. В дискуссии предлагали сделать так:

location.href=«javascript:(function(){ваш_код})()»

Только двойные кавычки из GM_addStyle уберите. Сжать код в одну строчку можно с помощью dean.edwards.name/packer/

После этого достаточно логичным представляется его конвертация в расширение.

manifest.json
{
«name»: «Nice alert»,
«version»: «0.73»,
«description»: «Not modal alert box »,
«content_scripts»: [
{
«matches»: [«http://*/*», «https://*/*», «file://*»],
«js»: [«nice_alert.user.js»]
}
]
}

Запускаем конвертацию: «c:\Documents and Settings\aRuzanow\Local Settings\Application Data\Google\Chrome\Application\chrome.exe» --pack-extension=c:\extensions\nice_alert

Результат: ruzanow.ru/extensions/nice_alert.crx
Спасибо за расширение! Оно работает.

location.href=«javascript:...» — это убожество. Разработчики Хрома странные люди. Они оставили доступ к window страницы, но сделали его неудобным для разработчиков. Security от этого лучше не стало.

Получается, что Хром 4 не имеет обратную совместимость с большинством UserJS. Это очень плохо.
Здорово! Спасибо. :)
Единственное, хорошо бы долбавить !important к css-свойствам, чтобы не перекрывались стилями страницы.
А можно ссылку пример? ^_^'
Заборзел, ага =)
Самая первая ссылка в посте.
А сделайте, пожалуйста, еще оперное расширение.
Sign up to leave a comment.

Articles