19

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

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

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

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

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

3 ответа3

16

Единственный способ отключить окна предупреждений - установить расширение или пользовательский скрипт. Пользовательский скрипт, на который вы ссылаетесь, предназначен для 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 .

2

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .