在Chrome中调试用户脚本的方法

时间:2011-08-28 08:19:22

标签: google-chrome-extension userscripts

我尝试对用户脚本进行一些修改以使其能够在Chrome下运行,但是当我将其拖到Chrome的窗口中进行安装时,会弹出一个对话框并显示“无效的脚本标题”。

我尝试使用开发人员工具和内置的Javascript控制台来调试发生的任何错误,但似乎没有任何内容可以列出任何信息。

除了我已经知道的相同错误消息之外,

Console.app没有列出任何有意义的内容。

  

[0x0-0x2d02d] .com.google.Chrome:[346:1547:16686819618022:错误:extension_error_reporter.cc(55)]扩展错误:无效的脚本标题。

如何合理地调试此错误消息并找出标头不正确的内容?

我在开发者频道上使用Chrome 15.0.861.0,在OS 10.7 Lion下。

3 个答案:

答案 0 :(得分:6)

我终于偶然发现了Chromium Bug Report这个问题的答案。

事实证明,我的问题的答案是在(非常简短的)Userscript Documentation for Chrome页面中。

  

使用Greasemonkey风格的@include规则,Chrome无法确定脚本将在何处运行(因为google。*也可以在google.evil.com上运行)。因此,Chrome只会告诉用户这些脚本将在所有域上运行,这有时比必要的更加可怕。使用@match,Chrome会告诉用户用户脚本将运行的正确域名集。

事实证明,我一直在使用@match http://*musicbrainz.org来尝试匹配www.musicbrainz.org以及musicbrainz.org,但根据引用的文字,这并不能免除您的意外匹配evilmusicbrainz.org。所以,我的解决方案是使用两行:

@match http://*.musicbrainz.org
@match http://musicbrainz.org

答案 1 :(得分:4)

类型:

 debugger;

代码中的某处,Web Inspector将在该位置弹出。我在这里回答了类似的问题Chrome debugger inject javascript

答案 2 :(得分:1)

当我得到相同的错误消息( INVALID SCRIPT HEADER )时,我发现它会导致 // == UserScript == 标题信息之间的拼写错误

wronge line

// @run-at document.end

更正后的行

// @run-at document-end