GM_openInTab(或任何其他GM_函数)未定义?

时间:2015-02-01 22:46:05

标签: javascript greasemonkey tampermonkey

当我的GM脚本执行此操作时:

var curTab = GM_openInTab(url);

它会在浏览器控制台中导致'GM_openInTab is not defined' JavaScript错误。

我也尝试使用var curWin = window.open(url);代替GM_openInTab,但它没有任何影响。

我正在尝试使用此GM脚本:对于给定的网站(域名),请浏览此域中的URL列表(数组)并查找感兴趣的项目。

我的代码或方法出了什么问题?

我正在使用Greasemonkey 2.3和Firefox 33.1.1以及Windows XP 32位。

1 个答案:

答案 0 :(得分:6)

要使用GM_个功能,您必须设置匹配的@grant directiveDoc (截至Greasemonkey version 2.0Release notes

例如:

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_openInTab
// ==/UserScript==

var curTab  = GM_openInTab ("http://pwnthemall.com/");

请注意,这具有重新启用Greasemonkey沙箱的副作用。另见:



Tampermonkey 模仿version 3.9Release notes的大部分此行为。但是如果未指定@grant,当前版本(3.9.202)仍会尝试猜测适当的值,因此您不会看到错误(尚未)。 无论如何,始终使用@grant,以获得最大的兼容性,并为您的代码提供面向未来的保护。