2008-10-24 121 views
11

我写的JavaScript代码是作为字符串读取并通过eval()通过Firefox扩展执行的。 Firebug会“看到”我的脚本,因此我无法使用断点,看到对象等。调试greasemonkey般的脚本

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

我试过使用Lint和其他验证器,但是我的脚本使用了很多扩展环境提供的对象和函数,使得大量的错误报告不相关。另外,输出结果往往过于挑剔(聚焦间距问题等)。

回答

2

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

UPDATEHere's a link发表到博客文章描述使用GreasyThug调试GM脚本。它有一步一步的过程来复制错误并设计解决方案。

1

我使用这个代码,以便能够使用jQuery(无需unsafeWindow黑客)来访问页面的DOM和错误记录到萤火虫控制台:

(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