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

标签 javascript greasemonkey tampermonkey

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

var curTab = GM_openInTab(url);

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

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

我试图用这个 GM 脚本做的是:对于给定的网站(域名),浏览该域上的 URL 列表(数组)并寻找感兴趣的项目。

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

我在 Firefox 33.1.1 和 Windows XP 32 位上使用 Greasemonkey 2.3。

最佳答案

要使用任何 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 沙箱的副作用。另见:



version 3.9Release notes 起,

Tampermonkey 模拟了大部分这种行为.但如果未指定 @grant,当前版本 (3.9.202) 仍会尝试猜测适当的值,因此您不一定会看到错误(目前)。
始终使用 @grant,以获得最大的兼容性和面向 future 的代码。

关于javascript - GM_openInTab(或任何其他 GM_ 函数)未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28268847/

相关文章:

javascript - Discord.js 14 - 当成员加入时无法将图像发送到特定 channel

javascript - Greasemonkey 可以从分页的 URL 序列中获取值吗?

javascript - 将标签添加到标签内的文本

javascript - 调用 componentWillReceiveProps 后,参数返回未定义

javascript - 如何在 JavaScript 中定义和接收来自多个 WebSocket 的数据?

javascript - 计算 javascript 和 Ruby on Rails 中的字符串长度

javascript - 如何在 GreaseMonkey 中点击

javascript - 我应该为此 Tampermonkey 脚本选择哪个元素?或者可以等到所有内容加载结束吗?

jQuery click() 在 Greasemonkey/Tampermonkey 脚本中不起作用

javascript - 是否可以在浏览器中更改 Javascript 文件中的变量?