11

我正在编写作为字符串读入并通过 eval() 由 firefox 扩展执行的 javascript 代码。Firebug 确实“看到”了我的脚本,因此我无法使用断点、查看对象等。

我目前正在使用 Firefox 的错误控制台,我开始发现它有限制。我还有哪些其他选择?理想情况下,我可以使用 Firebug 或类似的东西。人们通常如何调试 Greasemonkey 脚本?

我尝试过使用 Lint 和其他验证器,但我的脚本使用了扩展环境提供的大量对象和函数,导致报告的许多错误无关紧要。此外,输出往往过于挑剔(关注间距问题等)。

4

3 回答 3

2

我创建了一个交互式控制台来调试 Greasemonkey 脚本。它需要 Google Gears,但它包含输入命令的持久历史记录。

更新:这是一篇博客文章的链接,该文章描述了使用 GreeasyThug 调试 GM 脚本。它有一个逐步的过程来复制错误并设计解决方案。

于 2009-02-19T05:10:29.957 回答
1

我使用此代码是为了能够使用 jQuery 访问页面 DOM(不需要 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

于 2010-08-14T12:22:46.510 回答
1

据我所知,Firebugeval()从 1.1 开始就支持调试,特别是对于 GreaseMonkey,您可以使用GM_log进行基本日志记录,您可能会发现这个工具也很有用:

于 2008-10-24T01:31:02.833 回答