Отладка скриптов типа greasemonkey - PullRequest
11 голосов
/ 24 октября 2008

Я пишу код JavaScript, который читается как строка и выполняется через eval () расширением firefox. Firebug «видит» мой скрипт, поэтому я не могу использовать точки останова, видеть объекты и т. Д.

В настоящее время я использую консоль ошибок Firefox, которую я начинаю находить ограничивающей. Какие у меня есть другие варианты? В идеале я мог бы использовать Firebug или что-то подобное. Как люди обычно отлаживают скрипты Greasemonkey?

Я пытался использовать Lint и другие валидаторы, но мой сценарий использует множество объектов и функций, предоставляемых средой расширения, что делает большинство ошибок, о которых сообщают, не относящимися к делу. Кроме того, результат имеет тенденцию быть слишком придирчивым (фокусировка на пробелах и т. Д.).

Ответы [ 3 ]

2 голосов
/ 19 февраля 2009

Я создал интерактивную консоль для отладки скриптов Greasemonkey. Для этого требуется Google Gears, но он содержит постоянную историю введенных команд.

ОБНОВЛЕНИЕ : Вот ссылка на сообщение в блоге, описывающее использование GreasyThug для отладки сценария GM. У него есть пошаговая процедура, чтобы повторить ошибку и найти решение.

1 голос
/ 14 августа 2010

Я использую этот код для того, чтобы иметь возможность доступа к DOM страницы с помощью jQuery (нет необходимости в unsafeWindow hacks) и регистрировать ошибки в консоли Firebug:

(function(_, $){
  try {
    var GM_log = function(obj) { _.console.log(obj); }

    // $("#my_div").reaplaceWith("hello world!");
    // _.someFunctionDefinedInTheWebsite();

  } catch(e) {
    GM_log(e);
  }
})(unsafeWindow, unsafeWindow.jQuery);

ПРИМЕЧАНИЕ : в этом примере предполагается, что страница, к которой вы обращаетесь, уже использует jQuery

1 голос
/ 24 октября 2008

Насколько я знаю, Firebug поддерживает отладку eval(), начиная с версии 1.1, специально для GreaseMonkey, вы можете использовать GM_log для базового ведения журнала, вы также можете найти полезными эти инструменты:

...