Отладка сценариев greasemonkey
Я пишу код javascript, который читается как строка и выполняется через eval() расширением firefox. Firebug "видит" мой script, поэтому я не могу использовать точки останова, видеть объекты и т.д.
В настоящее время я использую консоль ошибок Firefox, которую я начинаю искать. Каковы мои другие варианты? В идеале я мог бы использовать Firebug или что-то похожее на него. Как люди обычно отлаживают сценарии Greasemonkey?
Я пробовал использовать Lint и другие валидаторы, но мой script использует множество объектов и функций, предоставляемых средой расширения, из-за чего многие ошибки не учитываются. Кроме того, выход имеет тенденцию быть слишком nitpicky (фокусировка проблем с интервалом и т.д.).
Ответы
Ответ 1
Я создал интерактивную консоль для отладки сценариев Greasemonkey. Он требует Google Gears, но он включает в себя постоянную историю команд, которые были напечатаны.
UPDATE: Здесь ссылка на сообщение в блоге, описывающее использование GreasyThug для отладки GM script. Он получил пошаговую процедуру для репликации ошибки и разработки решения.
Ответ 2
Насколько я знаю, Firebug поддерживает отладку eval()
с 1.1, особенно для GreaseMonkey, вы можете использовать GM_log для базовых вы можете найти полезные инструменты:
Ответ 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