Greasemonkey @grant 不再工作了?
Greasemonkey @grant does not work anymore?
我有以下 Greasemonkey 脚本,它试图读取资源文本:
// ==UserScript==
// @name Test
// @namespace test
// @version 1
// @grant GM_getResourceText
// @resource testresource http://whosebug.com/
// ==/UserScript==
var text = GM_getResourceText('testresource');
几周前我尝试过类似的方法并且成功了。
现在我运行这个的时候,GM_getResourceText找不到:
/*
Exception: ReferenceError: GM_getResourceText is not defined
@Scratchpad/7:9:5
*/
我在 Firefox 37.0.2 上安装了 Greasemonkey 3.1。
有没有其他人遇到同样的问题and/or知道哪里出了问题吗?
该代码不应给出该错误,并且 GM_getResourceText()
在 Firefox 37.0.2 和 Greasemonkey 3.1 上对我来说仍然可以正常工作。
确保您正在编辑和保存脚本的正确副本。参见 How do I edit a script I'm working on?
当您查看浏览器控制台时,该代码 应该 给出如下错误:
: Component returned failure code: 0x805e0006 [nsIWebNavigation.loadURI] browser.js:10592:0
TypeError: aDefault is undefined
严格来说,这是 Greasemonkey 代码中的错误。
然而,这也不是 @resource
通常使用的方式。通常,您只需加载一个特定的 和静态 文件。 @resource
用于 CSS、图像、XML 等文件...不是不断变化的应用程序路径。
如果您确实想要将此类站点的快照作为资源,请将页面(在您的示例中为 https://whosebug.com/)保存到与 *.user.js
文件相同的文件夹中,并使用 .htm
扩展(非常重要)和 @resource
that.
所以,这个脚本工作得很好:
// ==UserScript==
// @name _Test
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_getResourceText
// @resource testresource Stack_Overflow.htm
// ==/UserScript==
var text = GM_getResourceText ('testresource');
console.log (text);
在 之后,您已将 https://whosebug.com/ 另存为 Stack_Overflow.htm
在脚本的安装目录中。
我有以下 Greasemonkey 脚本,它试图读取资源文本:
// ==UserScript==
// @name Test
// @namespace test
// @version 1
// @grant GM_getResourceText
// @resource testresource http://whosebug.com/
// ==/UserScript==
var text = GM_getResourceText('testresource');
几周前我尝试过类似的方法并且成功了。 现在我运行这个的时候,GM_getResourceText找不到:
/*
Exception: ReferenceError: GM_getResourceText is not defined
@Scratchpad/7:9:5
*/
我在 Firefox 37.0.2 上安装了 Greasemonkey 3.1。 有没有其他人遇到同样的问题and/or知道哪里出了问题吗?
该代码不应给出该错误,并且 GM_getResourceText()
在 Firefox 37.0.2 和 Greasemonkey 3.1 上对我来说仍然可以正常工作。
确保您正在编辑和保存脚本的正确副本。参见 How do I edit a script I'm working on?
当您查看浏览器控制台时,该代码 应该 给出如下错误:
: Component returned failure code: 0x805e0006 [nsIWebNavigation.loadURI] browser.js:10592:0
TypeError: aDefault is undefined
严格来说,这是 Greasemonkey 代码中的错误。
然而,这也不是 @resource
通常使用的方式。通常,您只需加载一个特定的 和静态 文件。 @resource
用于 CSS、图像、XML 等文件...不是不断变化的应用程序路径。
如果您确实想要将此类站点的快照作为资源,请将页面(在您的示例中为 https://whosebug.com/)保存到与 *.user.js
文件相同的文件夹中,并使用 .htm
扩展(非常重要)和 @resource
that.
所以,这个脚本工作得很好:
// ==UserScript==
// @name _Test
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_getResourceText
// @resource testresource Stack_Overflow.htm
// ==/UserScript==
var text = GM_getResourceText ('testresource');
console.log (text);
在 之后,您已将 https://whosebug.com/ 另存为 Stack_Overflow.htm
在脚本的安装目录中。