如何确定Greasemonkey脚本未运行的原因

Jes*_*sen 31 greasemonkey

我试图让Greasemonkey脚本在页面上运行.但事实并非如此.

你如何调试脚本?

启动新Greasemonkey脚本的最小可能步骤是什么?

Myr*_*rys 34

当我开始使用用户脚本时,我的第一个错误是没有使用通配符.

// Broken:
// @include        https://www.example.com/

// Working:
// @include        https://www.example.com/*
Run Code Online (Sandbox Code Playgroud)

这是脚本甚至不应用的最简单方法,因此根本不运行.另外,请务必检查语法错误; 错误的分号可能会阻止脚本被解析,因此会被忽略.

  • 公平地说,www.facebook.com!= facebook.com. (6认同)
  • 是的,这解决了我的问题! (3认同)

San*_*nti 5

您可以在脚本中的任何位置编写日志,以便更好地了解如果在其中执行的操作:

GM_log("Hello, World!");
Run Code Online (Sandbox Code Playgroud)

http://wiki.greasespot.net/GM_log

更多信息:http://wiki.greasespot.net/Greasemonkey_Manual: Other_Useful_Tools#JavaScript_Console

另一个提示:看看整个greasemonkey维基.他们有很多好东西:http: //wiki.greasespot.net/Main_Page

  • 谢谢,但当时我需要这个,我的脚本甚至没有运行 - 甚至无法运行像`alert("hello");`的语句.所以我希望建立一个包含步骤的清单,你可以检查你的脚本是否还没有运行. (14认同)
  • 从Greasemonkey 3.2(Firefox 38,OS X)开始,`GM_log`似乎不起作用. (4认同)

Kei*_*tes 5

在Firefox中,打开工具>错误控制台,并在加载页面时观察它.如果你被页面上的警告所淹没,你可以过滤错误,这仍然经常突出你的脚本问题.

  • FF里应该是这样的。然而,如今 UserScript 的某些错误(例如脚本无法编译)既不会显示在 Web 控制台(`Ctrl+Shift+K`)中,也不会显示在浏览器控制台(`Ctrl+Shift+J`)中。看来我们必须切换到 Chrome 来调试 GM 脚本.. (2认同)

Chu*_*ons 5

我的油脂脚本正在运行; 我添加了一条线; 它停止了工作; 我删除了这条线; 它仍然无法正常工作.

updater.php当我重新加载添加了新行的脚本时,我确定greasemonkey安装了一个损坏的脚本.重新加载旧脚本保留了脚本的损坏版本updater.php.我最终updater.php在Firefox Web控制台中找到了一条引用该脚本的错误消息.updater.php在加载新版本的脚本后,我用包含注释的文件替换了脚本,并且我的脚本开始执行.

在mac上,我updater.php在: /Users/csimmons/Library/Application Support/Firefox/Profiles/81ri7k71.default/gm_scripts/Extended_LoU_Tweak

您可以updater.php在Firefox默认配置文件gm_scripts/目录中找到类似的文件.


Ber*_*nát 5

对我来说,脚本中存在语法错误,Greasemonkey没有给出错误消息.将脚本复制粘贴到JS控制台后发现了这个秘密.