Tampermonkey - 右键菜单

时间:2017-03-15 03:28:22

标签: javascript tampermonkey

使用Tampermonkey可以在Chrome中创建右键菜单选项吗?

我找到了GM_registerMenuCommand,但它似乎没有在右键菜单中显示任何新项目。

另一个问题是我在测试脚本中使用GM_openInTab,但由于某种原因它似乎无限循环。它应该只在单击菜单后触发,为什么会发生这种情况?

另外我想知道有没有办法以更高级的方式使用自定义右键单击图标等?

有一个适用于菜单的GM脚本适用于菜单,但在Chrome中似乎没有任何显示,所以有一种方法可以让它工作。

// ==UserScript==
// @name            Context Menu
// @namespace       http://tampermonkey.net/
// @description     Test
// @version         0.1
// @author          author
// @include         *
// @exclude         file://*
// @grant           GM_openInTab
// @grant           GM_registerMenuCommand
// ==/UserScript==]


(function() {
    'use strict';

function test() {
    GM_openInTab("https://website.net");
}

GM_registerMenuCommand("hello", test(), "h");

})();

2 个答案:

答案 0 :(得分:4)

根据wOxxOm评论,可以使用@run-at context-menu

示例

// ==UserScript==
// @name            Go to Website.Net
// @namespace       http://tampermonkey.net/
// @description     Context menu to execute UserScript
// @version         0.1
// @author          author
// @include         *
// @grant           GM_openInTab
// @run-at          context-menu
// ==/UserScript==]


(function() {
    'use strict';
    GM_openInTab("https://website.net");
})();

结果 :(效果很好:)

Userscript shown at context menu

答案 1 :(得分:2)

而不是GM_registerMenuCommand("hello", test(), "h")您应该GM_registerMenuCommand("hello", test, "h")

第一个版本立即调用test函数,然后将其结果传递给GM_registerMenuCommand函数。第二个传递函数本身而不是结果。