当我的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位。
答案 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
,以获得最大的兼容性,并为您的代码提供面向未来的保护。