Мой очень простой скрипт Greasemonkey не запущен?

У меня проблемы с этим очень простым скриптом Greasemonkey, скорее всего с конфигурацией метаданных.

Вот полный источник основного файла

// ==UserScript==
// @name        Google Hello
// @namespace   https://google.com
// @description Basic Google Hello
// @include     *
// @version     1
// ==/UserScript==

alert("hi google!");

Этот скрипт должен запускаться, когда я захожу на Google.com, но предупреждение не появляется. В чем проблема?

Я пытаюсь запустить этот скрипт в Ubuntu с Firefox.

1 ответ

Решение

Если alerts() не стреляют, скорее всего, вы нажали Firefox Prevent this page from creating additional dialogs или установите предпочтения браузера (более старые версии Firefox), или Firefox может стать нестабильным в памяти.

Универсальные шаги отладки Greasemonkey:

(С одним шагом добавлено для проблем с alert().)

  1. Сначала убедитесь, что скрипт запускается даже для рассматриваемой страницы.
    Просматривая эту страницу, нажмите на треугольник вниз рядом со значком Greasemonkey (в качестве альтернативы вы можете открыть Tools -> Greasemonkey в меню Firefox.) И убедитесь, что ожидаемое имя сценария появляется и проверяется. НАПРИМЕР:
    Greasemonkey states

  2. Посмотрите, есть ли какие-либо соответствующие сообщения / ошибки в браузерной консоли Firefox.
    Активируйте консоль, нажав Ctrl Shift J или ее эквивалент.

    Вот снимок экрана, показывающий, как сообщения и ошибки появляются в консоли браузера - вызванные как веб-страницей, так и скриптом Greasemonkey:
    Sample Browser console results

  3. открыто about:config, ищи capability.policy.default.Window.alert и удалите или сбросьте значение, если оно найдено.

  4. Удалите скрипт Greasemonkey.
  5. Полностью очистить кеш браузера.
  6. Выключите Firefox полностью. Используйте диспетчер задач или эквивалентный ему, чтобы убедиться, что в памяти нет потока / задачи / процесса Firefox.
  7. Перезапустите Firefox.
  8. Установите скрипт Greasemonkey заново.
  9. Если это все еще не работает, создайте новый профиль Firefox или попробуйте другой компьютер вообще.

Дополнительные вопросы:

  1. Пожалуйста, предоставьте свои версии трех вещей: (1) ОС, (2) Firefox, (3) Greasemonkey или Tampermonkey или Scriptish и т. Д.

  2. @include * означает, что скрипт будет срабатывать для каждой страницы! Это почти всегда плохая практика. (Есть некоторые исключения, но ваш случай не один.)

  3. @namespace не контролирует, где страница работает. Единственная вещь @namespace позволяет разрешить нескольким скриптам иметь одно и то же имя (если их @namespace с разные). Увидеть @namespace документация

  4. Избегать использования alert() для отладки. Это раздражает и может маскировать проблемы со временем.
    использование console.log() , Вы можете увидеть результаты и полезные сообщения об ошибках (подсказки, подсказки) на консоли браузера.

  5. Google почти всегда использует / перенаправляет на www.google.com (Для англ. Пользователей США). Так, // @include  https://google.com почти никогда не будет работать так, как вы хотите.

    Рекомендую использовать:

    // @match  *://www.google.com/*
    

    в качестве отправной точки.

    В Firefox Greasemonkey вы также можете использовать магию .tld для поддержки большинства международных доменов Google, например:

    // @include  http://www.google.tld/*
    // @include  https://www.google.tld/*
    

    Используйте обе строки. Обратите внимание, что это не так хорошо, как @match линия делает. Итак, если вы заботитесь только об одной нации / локали, просто используйте @match,


Собираем все вместе:

  1. Удалите ваш скрипт.
  2. Перезапустите Firefox.
  3. Установите этот скрипт:

    // ==UserScript==
    // @name        Google Hello
    // @namespace   John Galt
    // @description Basic Google Hello
    // @match       *://www.google.com/*
    // @version     1
    // @grant       none
    // ==/UserScript==
    
    console.log ("Hi Google!");
    
  4. Посетите Google и запишите результаты в браузерной консоли Firefox.

  5. Если проблема не устранена, выполните все шаги отладки, описанные выше.
  6. Если проблема не устранена, откройте новый вопрос и укажите ВСЕ следующее:
    1. Три версии, упомянутые выше.
    2. Соответствующие ошибки и сообщения вы получаете на консоли браузера.
    3. Точный код и шаги, необходимые для дублирования проблемы. Сделайте MCVE для этого!
    4. Краткое описание того, что вы пытались решить проблему.
Другие вопросы по тегам