запретить создание дополнительных диалоговых окон на этой странице что значит

Почему в окне предупреждения отображается «Запретить этой странице создавать дополнительные диалоговые окна»?

В моем приложении Rails 3 я делаю:

Иногда под этим сообщением об ошибке (в том же окне предупреждения) я вижу: «Запретить этой странице создавать дополнительные диалоги» и флажок.

Возможно ли не отображать этот дополнительный текст и флажок?

Я использую Firefox 4.

6 ответов

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

Как веб-разработчик, вы не можете отключить его.

Это функция браузера.

Если вы можете, попробуйте использовать http://bootboxjs.com/, с этой библиотекой вы можете сделать то же самое из

Вы также получите хороший пользовательский интерфейс!

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

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

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

Обратите внимание, что это, вероятно, сломалось бы, если dom.successive_dialog_time_limit изменить на значение больше 3, и при этом я не знаю, имеет ли Chrome то же значение по умолчанию, что и Firefox. Но, по крайней мере, это вариант.

Кроме того, если кто-то может улучшить это, пожалуйста!

Это мера безопасности на стороне браузера, которая предотвращает зависание страницы браузером (или текущей страницей), показывая модальные сообщения (предупреждение / подтверждение) в бесконечном цикле. Смотрите, например здесь для Firefox.

Вы можете создать собственное окно оповещения, используя скрипт Java, нижеприведенный код переопределит функцию оповещения по умолчанию

Источник

Как отключить «запретить этой странице создавать дополнительные диалоги»?

Я разрабатываю веб-приложение, которое использует JavaScript alert() и confirm() диалоговые окна.

Как я могу остановить Chrome от показа этого флажка?

запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть фото запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть картинку запретить создание дополнительных диалоговых окон на этой странице что значит. Картинка про запретить создание дополнительных диалоговых окон на этой странице что значит. Фото запретить создание дополнительных диалоговых окон на этой странице что значит

есть ли настройки я могу изменить?

Я знаю, что могу изменить исходный код, но мне бы хотелось, чтобы Chrome все еще мог автоматически обновляться.

мне не нужно беспокоиться о других браузерах, так как приложение работает только в Chrome.

у меня есть доступ администратора к (Windows) машины, которые запускают приложение.

6 ответов

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

вы можете, однако, заглянуть в модальные всплывающие окна, такие как jQuery UI Dialog. Это поля предупреждений javascript, которые показывают настраиваемое диалоговое окно. Они не используют значение по умолчанию alert() функция и, следовательно, обойти проблему, с которой вы столкнулись полностью.

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

это то, что я закончил делать, так как у нас есть веб-приложение, которое имеет несколько пользователей, которые не находятся под нашим контролем. (@DannyBeckett я знаю, что это не точный ответ на ваш вопрос, но людям, которые смотрят на ваш вопрос, это может помочь.) Вы можете по крайней мере обнаружить, если они не видят диалогов. Есть несколько вещей, которые вы, скорее всего, хотите изменить, как время для отображения, или то, что вы на самом деле отображения. Помните, что это только уведомит пользователя, что они удалось щелкнуть этот маленький флажок.

очевидно, я установил время в 3,5 миллисекунды. Но после некоторого тестирования мы смогли щелкнуть или закрыть диалоги примерно за 5 миллисекунд плюс.

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

лучше использовать jquery-подтвердить вместо того, чтобы пытаться удалить этот флажок.

вы должны позволить пользователю сделать это, если они хотят (и вы не можете остановить их в любом случае).

ваша проблема в том, что вам нужно знать, что они есть, а затем предположить, что они означают ОК, а не отменить. Заменить confirm(x) С myConfirm(x) :

Источник

Как отключить вывод чекбокса «Предотвратить создание дополнительных диалоговых окон на этой странице»?

В Хроме есть всплывающее окно, вызванное через window.onbeforeunload = функция

В этом окне есть чекбокс для предотвращения всплывания этих окон.
Как можно этот чекбокс убрать? На некоторых сайтах видел, что он отсутствует.

Вот пример этого окна:

запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть фото запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть картинку запретить создание дополнительных диалоговых окон на этой странице что значит. Картинка про запретить создание дополнительных диалоговых окон на этой странице что значит. Фото запретить создание дополнительных диалоговых окон на этой странице что значит

запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть фото запретить создание дополнительных диалоговых окон на этой странице что значит. Смотреть картинку запретить создание дополнительных диалоговых окон на этой странице что значит. Картинка про запретить создание дополнительных диалоговых окон на этой странице что значит. Фото запретить создание дополнительных диалоговых окон на этой странице что значит

2 ответа 2

Никак нельзя. Нечего писать вирусы.

Если вкратце, то вы не можете этого сделать.

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

По вполне очевидным причинам, связанным с «безопасностью», вы мало что можете сделать, когда пользователь хочет перейти на другую страницу, закрыть вкладку или иным способом покинуть сайт. Дело в том, что браузеры хотят наверняка удостовериться в том, что вы не можете предотвратить закрытие той страницы, которую пользователь решил закрыть.

Именно по этой причине события beforeunload (jQuery) и onbeforeunload (Vanilla JS) крайне ограничены по функционалу и они точно не предназначены для предотвращения закрытия страниц, за исключением одного стандартного (и скучного) диалогового окна, которое, в зависимости от браузера, может быть не показано.

Некоторые браузеры позволяют изменить сообщение в этом диалоговом окне, а некоторые (например, Firefox) — нет. Причина та же — безопасность. Гипотетически вы можете этим сообщением ввести пользователя в заблуждение, например, выведя такой текст:

Ваш компьютер взорвется, если вы покинете эту страницу.

Насколько мне известно, большинство браузеров все же поддерживает вывод своего текста, но только в дополнение к стандартному, которое не может быть изменено. Следует учитывать, что у некоторых браузеров (это не касается десктопных браузеров актуальных версий) onbeforeunload вообще отсутствует.

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

Источник

Как определить » запретить этой странице создавать дополнительные диалоговые окна»

вопрос

как я могу определить, если пользователь установил флажок «запретить этой странице создавать дополнительные диалоги»?

почему это проблема

если пользователь предотвратил появление полей подтверждения, функция confirm(‘foobar’) всегда возвращает false.

контекст

Я думаю, что если пользователь отключил диалоги, то функция должна либо выдать ошибку, либо вернуть true. Функция предназначена для подтверждения действия, которое запросил пользователь.

2 ответов

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

однако то, что вы можете сделать, это написать обертку вокруг confirm (), которая умножает время ответа. Если он слишком быстр, чтобы быть человеком, тогда приглашение, скорее всего, было подавлено, и оно вернулось бы истинным, а не ложным. Вы можете сделать его более надежным, запустив confirm () несколько раз, пока он возвращает false, поэтому вероятность того, что это пользователь über-fast, очень низкая.

обертка будет примерно такой:

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

моей первой идеей, если вам нужно обходное решение, было бы изменить код с помощью system confirm к некоторому оповещению библиотеки js (например, от jQuery UI)

Источник

chrome отменяет действие » запретить этой странице создавать дополнительные диалоговые окна»

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

7 ответов

нет. Но вы действительно должны использовать console.log() вместо alert() для отладки.

В Chrome он даже имеет то преимущество, что может печатать целые объекты (а не только toString() ).

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

поэтому правильный ответ: да, есть лучший способ.

щелкните правой кнопкой мыши вкладку и выберите «дублировать», затем закройте исходную вкладку, если хотите.

оповещение повторно включено в дубликате.

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

2 больше решений, с которыми мне повезло, когда ни tab close + reopening страницу на другой вкладке, ни закрытие всех вкладок в Chrome( и браузере), а затем перезапуск не сработал:

1) я исправил его на своей машине, закрыв вкладку, принудительно закрыв Chrome и перезапустив браузер без восстановления вкладок (Примечание: На компьютере под управлением CentOS Linux).

2) у моего босса (также на CentOS) была та же проблема (оповещения являются большой частью процесса отладки Javascript моей компании для многочисленные причины, например наследие), но мой 1st метод не работал для него. Тем не менее, мне удалось исправить его следующим образом:

a) сделать пустой текстовый файл с именем FixChrome.sh, и вставьте следующий скрипт bash:

b) закройте Chrome, затем откройте терминал и запустите скрипт (bash FixChrome.sh).

это сработало для него. Недостатком является то, что вы теряете все вкладки из текущего и предыдущего сеанс, но он того стоит, если это важно для тебя.

открыть новое окно или вкладка с той же ссылкой.. параметр PREVENT действует только для сеанса..

Если вы хотите, чтобы диалоговое окно было повторно активировано для страницы, которую вы установили как диалоговое окно запретить.

Chrome: выберите Настройки, откроется страница google для chrome со всеми настройками для chrome.

в самом низу, перейдите к advance settings и в нижней части advance settings вы можете нажать на Resset Browser Settings. это заставит диалоговое окно появиться так, как они должны.

отключение аппаратного ускорения, похоже, является настройкой, которая влияет на всплывающие окна и диалоговые окна.

Chrome постоянно скрывал диалоговые окна, когда мне нужно было ответить » Да » или » нет » на вещи, а также Когда мне нужно было переименовать папки на панели закладок. После нескольких недель работы. Я отключил все помощники Chrome в настройках, также в windows 10 я отключил окно. Он сделал что-то, чтобы вернуть всплывающие окна и диалоги в Область просмотра.

когда эта ошибка происходит, я смог закрыть вкладку, сначала нажав Enter, прежде чем нажать кнопку закрытия вкладки X. Браузер имел окно предупреждения, скрытое, которое требовало ответа от пользователя.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *