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

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

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

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

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

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

3 ответа

Решение

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

Кроме того, страница с неправильным поведением, которую вы цитируете, является хитрой и запускает этот "валидатор слов" в iframe с кодом, который запускает 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 линия.

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

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

Другие вопросы по тегам