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

KXN*_*1FM 3 javascript greasemonkey tampermonkey

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

var curTab = GM_openInTab(url);
Run Code Online (Sandbox Code Playgroud)

它会导致'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位.

Bro*_*ams 6

要使用任何GM_功能,必须设置匹配@grant 指令Doc(Greasemonkey版本2.0 发行说明)

例如:

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

var curTab  = GM_openInTab ("http://pwnthemall.com/");
Run Code Online (Sandbox Code Playgroud)

请注意,这会产生重新打开Greasemonkey沙箱的副作用.也可以看看:



版本3.9 发行说明开始, Tampermonkey模拟了大部分此行为.但是如果@grant未指定,当前版本(3.9.202)仍会尝试猜测适当的值,因此您不一定会看到错误(尚未).
始终使用@grant,以获得最大的兼容性,并为您的代码提供面向未来的证明.