我的很简单的Greasemonkey脚本是不是运行?
My very simple Greasemonkey script is not running?
我在使用这个非常基本的 Greasemonkey 脚本时遇到问题,最有可能是元数据配置。
这是基本文件的完整来源
// ==UserScript==
// @name Google Hello
// @namespace https://google.com
// @description Basic Google Hello
// @include *
// @version 1
// ==/UserScript==
alert("hi google!");
当我访问 Google.com 时,此脚本应该 运行,但未弹出警报。有什么问题?
我正尝试在 Ubuntu 上使用 Firefox 运行 此脚本。
如果 alerts()
没有触发, 可能是您点击了 Firefox 的 Prevent this page from creating additional dialogs
选项,或者设置了浏览器首选项(旧版本的 Firefox) ,或者 Firefox 可能在内存中变得不稳定。
通用 Greasemonkey 调试步骤:
(针对 alert()
的问题添加了一个步骤。)
首先确保脚本甚至为有问题的页面触发。
浏览该页面时,单击 Greasemonkey 图标旁边的向下三角形(或者,您可以打开 工具 -> Greasemonkey 在 Firefox 菜单上。)并确认预期的脚本名称出现并被选中。例如:
查看 messages/errors 在 Firefox's Browser Console 上是否有任何相关的 messages/errors。
按 CtrlShiftJ 或等效命令激活控制台。
这是显示消息和错误如何出现在浏览器控制台中的屏幕截图 -- 由网页和 Greasemonkey 脚本引起:
打开 about:config
,搜索 capability.policy.default.Window.alert
并删除或重置值,如果找到的话。
- 卸载 Greasemonkey 脚本。
- 彻底清除浏览器缓存。
- 完全关闭 Firefox。 使用 任务管理器 或等效工具,验证内存中没有 Firefox thread/task/process .
- 重新启动 Firefox。
- 重新安装 Greasemonkey 脚本。
- 如果仍然无法正常工作,请创建一个新的 Firefox 配置文件 或尝试使用不同的计算机。
其他问题:
请提供您的 版本 三件事: (1) OS, (2 ) Firefox, (3) Greasemonkey 或 Tampermonkey 或 Scriptish 等
@include *
意味着 脚本将在每一页都触发! 这几乎总是一种糟糕的做法。 (有一些例外,但你的情况不是这样。)
@namespace
不控制页面运行的位置。 @namespace
唯一做的就是允许多个脚本具有相同的名字(只要他们的 @namespace
不同)。见 the @namespace
documentation.
避免使用 alert()
进行调试。这很烦人,可以掩盖计时问题。
使用console.log()
.您可以在浏览器控制台上查看结果和有用的错误消息(提示,提示) ].
Google 几乎总是 uses/redirects 到 www.google.com
(对于美国英语用户)。所以,// @include https://google.com
几乎永远不会像你想要的那样工作。
推荐您使用:
// @match *://www.google.com/*
作为起点。
在 Firefox Greasemonkey 中,您还可以使用魔法 .tld
来支持大多数 Google 的国际域,例如:
// @include http://www.google.tld/*
// @include https://www.google.tld/*
同时使用这两条线。请注意,它的性能不如 @match
行。所以,如果你只关心一个nation/locale,就用@match
.
综合起来:
- 卸载脚本。
- 重新启动 Firefox。
安装这个脚本:
// ==UserScript==
// @name Google Hello
// @namespace John Galt
// @description Basic Google Hello
// @match *://www.google.com/*
// @version 1
// @grant none
// ==/UserScript==
console.log ("Hi Google!");
访问 Google 并在 Firefox 的浏览器控制台上记录结果。
- 如果仍然存在问题,请执行上述所有调试步骤。
- 如果还有问题,请打开一个新问题并提供以下所有内容:
- 上面提到的三个版本。
- 您在 浏览器控制台.
上收到的相关 错误和消息
- 复制问题所需的确切代码和步骤。 做一个MCVE for this!
- 您尝试解决问题的简短摘要。
我在使用这个非常基本的 Greasemonkey 脚本时遇到问题,最有可能是元数据配置。
这是基本文件的完整来源
// ==UserScript==
// @name Google Hello
// @namespace https://google.com
// @description Basic Google Hello
// @include *
// @version 1
// ==/UserScript==
alert("hi google!");
当我访问 Google.com 时,此脚本应该 运行,但未弹出警报。有什么问题?
我正尝试在 Ubuntu 上使用 Firefox 运行 此脚本。
如果 alerts()
没有触发, 可能是您点击了 Firefox 的 Prevent this page from creating additional dialogs
选项,或者设置了浏览器首选项(旧版本的 Firefox) ,或者 Firefox 可能在内存中变得不稳定。
通用 Greasemonkey 调试步骤:
(针对 alert()
的问题添加了一个步骤。)
首先确保脚本甚至为有问题的页面触发。
浏览该页面时,单击 Greasemonkey 图标旁边的向下三角形(或者,您可以打开 工具 -> Greasemonkey 在 Firefox 菜单上。)并确认预期的脚本名称出现并被选中。例如:
查看 messages/errors 在 Firefox's Browser Console 上是否有任何相关的 messages/errors。
按 CtrlShiftJ 或等效命令激活控制台。这是显示消息和错误如何出现在浏览器控制台中的屏幕截图 -- 由网页和 Greasemonkey 脚本引起:
打开
about:config
,搜索capability.policy.default.Window.alert
并删除或重置值,如果找到的话。- 卸载 Greasemonkey 脚本。
- 彻底清除浏览器缓存。
- 完全关闭 Firefox。 使用 任务管理器 或等效工具,验证内存中没有 Firefox thread/task/process .
- 重新启动 Firefox。
- 重新安装 Greasemonkey 脚本。
- 如果仍然无法正常工作,请创建一个新的 Firefox 配置文件 或尝试使用不同的计算机。
其他问题:
请提供您的 版本 三件事: (1) OS, (2 ) Firefox, (3) Greasemonkey 或 Tampermonkey 或 Scriptish 等
@include *
意味着 脚本将在每一页都触发! 这几乎总是一种糟糕的做法。 (有一些例外,但你的情况不是这样。)@namespace
不控制页面运行的位置。@namespace
唯一做的就是允许多个脚本具有相同的名字(只要他们的@namespace
不同)。见 the@namespace
documentation.避免使用
alert()
进行调试。这很烦人,可以掩盖计时问题。
使用console.log()
.您可以在浏览器控制台上查看结果和有用的错误消息(提示,提示) ].Google 几乎总是 uses/redirects 到
www.google.com
(对于美国英语用户)。所以,// @include https://google.com
几乎永远不会像你想要的那样工作。推荐您使用:
// @match *://www.google.com/*
作为起点。
在 Firefox Greasemonkey 中,您还可以使用魔法
.tld
来支持大多数 Google 的国际域,例如:// @include http://www.google.tld/* // @include https://www.google.tld/*
同时使用这两条线。请注意,它的性能不如
@match
行。所以,如果你只关心一个nation/locale,就用@match
.
综合起来:
- 卸载脚本。
- 重新启动 Firefox。
安装这个脚本:
// ==UserScript== // @name Google Hello // @namespace John Galt // @description Basic Google Hello // @match *://www.google.com/* // @version 1 // @grant none // ==/UserScript== console.log ("Hi Google!");
访问 Google 并在 Firefox 的浏览器控制台上记录结果。
- 如果仍然存在问题,请执行上述所有调试步骤。
- 如果还有问题,请打开一个新问题并提供以下所有内容:
- 上面提到的三个版本。
- 您在 浏览器控制台. 上收到的相关 错误和消息
- 复制问题所需的确切代码和步骤。 做一个MCVE for this!
- 您尝试解决问题的简短摘要。