Как отключить всплывающие окна и предупреждения 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.