您的脚本无法正常运行的原因是您发布的代码中存在错误。元数据块已损坏并且@run-at
指令在块之外。
附加问题:
- 您可能应该使用
location.replace()
以防止确认页面弄乱历史记录和后退按钮。
@include *posting.php?mode=reply*
将不必要地减慢所有 Firefox 的速度。这是因为 Greasemonkey 必须对每个 URL 进行深入的逐字符比较。
如果可以的话,不要从@includes
多字符通配符开始(或任何编程语言的任何比较)。最好有多个包含,如下所示:
// @include http://SITE_1/posting.php?mode=reply*
// @include http://SITE_2/posting.php?mode=reply*
//etc.
所以,这个脚本对你来说应该足够好:在实践中,你永远不会看到确认页面(我自己使用这种技术):
// ==UserScript==
// @name Whatever
// @include http://SITE_1/posting.php?mode=reply*
// @include http://SITE_2/posting.php?mode=reply*
// @include http://SITE_3/posting.php?mode=reply*
// @run-at document-start
// ==/UserScript==
location.replace (document.referrer);
请注意,像Rab Nawaz 的回答这样的方法可以提供更好的 UI 体验,但并不像他的回答显示的那么简单。您需要在典型的论坛页面上捕获许多表单、按钮和链接。并非所有内容都发布到相同的目的地,并且您如何处理结果因操作而异。
这location.replace()
是 UI 平滑度与潜在的大型代码复杂性之间的良好折衷。