如何为Chrome Tampermonkey用户脚本创建工具栏按钮?

时间:2014-09-09 16:59:56

标签: google-chrome google-chrome-extension userscripts tampermonkey

我写了一个用户脚本,当我调用它时我想运行它(不是每次加载匹配的网页时)。理想情况下,我想创建一个工具栏按钮来启动此脚本。怎么办呢?

PS:我需要它与网页脚本在相同的上下文中运行,并且能够调用其中嵌入的函数。

1 个答案:

答案 0 :(得分:7)

我不知道您正在谈论的确切工具栏,但可以向Tampermonkey's action menu添加菜单命令。

由于您的脚本应该可以在任何页面上运行,您需要 @include 所有页面,这可能会减慢许多iframe的页面速度。

只有单击了菜单命令,此脚本才会执行main函数(使用alert语句)。

// ==UserScript==
// @name       Run only on click
// @namespace  http://tampermonkey.net/
// @version    0.1
// @description  Run only on click
// @include    /https?:\/\/*/
// @copyright  2012+, You
// @grant      unsafeWindow
// @grant      GM_registerMenuCommand
// ==/UserScript==

GM_registerMenuCommand('Run this now', function() { 
    alert("Put script's main function here");
}, 'r');

通过两种方式访问​​页面功能:

function main () {
  window.function_at_the_page();
}

var script = document.createElement('script');
script.appendChild(document.createTextNode('('+ main +')();'));
(document.body || document.head || document.documentElement).appendChild(script);

或只是:

unsafeWindow.function_at_the_page();