Как отключить всплывающие окна и предупреждения JavaScript в Chrome?

20

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

Я не хочу отключать весь Javascript, только окна предупреждений Javascript. Те, которые всплывают и заставляют вас нажимать OK или X, чтобы закрыть их.

Я нашел пользовательские сценарии, которые утверждают, что делают это (пример: http://userscripts.org/scripts/show/58252 ). Я установил chrome на канал dev, запустил chrome с ключом --enable-user-scripts, скрипт показывается как установленный.

Но я все еще получаю окна с предупреждениями.

Пример окна предупреждения, которое не отключается, находится по адресу http://wordswithfriends.net/ - вставьте любое слово для мусора в слово валидатор на правой боковой панели. Вы получите всплывающее окно, сообщающее, что это не слово.

CreeDorofl
источник

Ответы:

17

Единственный способ отключить окна предупреждений - установить расширение или пользовательский скрипт. Пользовательский скрипт, на который вы ссылаетесь, предназначен для Firefox Greasemonkey и не будет работать в Chrome.

Кроме того, страница с неправильным поведением, которую вы цитируете, является хитрой и запускает этот «валидатор слов» в iframeкоде with, который запускает alert()сразу после перезагрузки iframe.

Но вот пользовательский скрипт, который побеждает его:

// ==UserScript==
// @name        Wordswithfriends, Block javascript alerts
// @match       http://wordswithfriends.net/*
// @run-at      document-start
// ==/UserScript==

addJS_Node (null, null, overrideSelectNativeJS_Functions);

function overrideSelectNativeJS_Functions () {
    window.alert = function alert (message) {
        console.log (message);
    }
}

function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

Если вы действительно хотите отключить ВСЕ alerts()на ВСЕХ страницах (не рекомендуется), то удалите // @matchстроку.

Брок Адамс
источник
7
Я принял этот ответ так сильно, что моя мышь взорвалась. Работает как шарм. Большое спасибо ^^
CreeDorofl
Пожалуйста! Рад помочь.
Брок Адамс
Почему не рекомендуется отключать все оповещения? Я никогда не сталкивался с полезными предупреждениями, кроме «Вы действительно хотите выйти из этой вкладки» на несохраненных страницах прогресса.
Coretek
Не работает, если на странице отображаются предупреждения во время загрузки.
Рив
@riv, открой новый вопрос, если у тебя есть случай, когда он не работает. Не забудьте предоставить полный рецепт для дублирования проблемы.
Брок Адамс
2

Для этого есть как минимум одно расширение в Chrome Web Store . Работает для меня, хотя звучит немного подозрительно, что у него есть дополнительная поддержка в режиме рекламы, которую вы можете отключить на странице настроек. (Я не нашел настройки, но решил, что это не повредит нулевой маршрутизации api.s13.us.)

ecmanaut
источник
0

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

Serhiy
источник
это звучит интересно, так как всплывающие окна с ошибками было бы неплохо удалить вообще. Позволяет ли вам точно указать, какие диалоги вы хотите автоматически ОК / отменить, или он как-то сам выбирает их?
CreeDorofl
Да, вы можете указать, какие диалоги закрывать и какую кнопку нажимать.
Сергей