Tampermonkey - Right click menu

有些话、适合烂在心里 提交于 2019-12-09 16:45:00

问题


With Tampermonkey is there any way to create a right click menu option in Chrome?

I found GM_registerMenuCommand but it does not seem to show any new items in the right click menu.

Another problem is I use GM_openInTab in the test script but it seems to loop infinitely for some reason. It should only trigger after the menu is clicked, why would this happen?

Also I am wondering is there a way to do this in a more advanced way with custom right click icons etc?

There was a GM script for Firefox that worked for menus but in Chrome nothing seems to show so it would be good to have a way to have this working.

// ==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");

})();

回答1:


As per wOxxOm comment, it is possible using @run-at context-menu.

Example:

// ==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");
})();

Result: (works nicely :)




回答2:


Instead of GM_registerMenuCommand("hello", test(), "h") you should have GM_registerMenuCommand("hello", test, "h")

The first version calls the test function immediately, and then passes its result to GM_registerMenuCommand function. The second passes the function itself instead of its result.



来源:https://stackoverflow.com/questions/42800590/tampermonkey-right-click-menu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!