Отладка сценариев greasemonkey

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

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

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

Ответ 1

Я создал интерактивную консоль для отладки сценариев Greasemonkey. Он требует Google Gears, но он включает в себя постоянную историю команд, которые были напечатаны.

UPDATE: Здесь ссылка на сообщение в блоге, описывающее использование GreasyThug для отладки GM script. Он получил пошаговую процедуру для репликации ошибки и разработки решения.

Ответ 3

Я использую этот код, чтобы иметь возможность доступа к странице DOM с помощью jQuery (без необходимости использования небезопасных хакеров) и ошибок журнала в консоли 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