使用Greasemonkey添加工具栏?

时间:2014-06-05 10:01:09

标签: javascript greasemonkey toolbar

我正在写一个Greasemonkey脚本,我想在我启用脚本的每个网站的顶部添加一个工具栏,但我不确定如何做到这一点(使用JS)。我希望工具栏提供下拉列表,对于下拉列表的每个选项,它对启用的网站执行不同的操作。任何其他方法做到这一点是值得赞赏的。 谢谢!

假设我将此作为我的.js文件:

var searchRE = new RegExp("red","gi"); 
var replace = 'blue'; 
for (var i=0;i<textNodes.snapshotLength;i++) { 
    var node = textNodes.snapshotItem(i); 
    node.data = node.data(searchRE, replace); 
} 

我应该把document.createElement ...放在这里吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我没有看到RegExp的需要,你真的不需要更多(如果我理解正确的话):

// ==UserScript==
// @name       Test
// @version    0.1
// @description  Some useful description
// @match      https://www.your.site/*
// @resource html file:///C:/Users/User/Desktop/Test.html
// ==/UserScript==

var myDiv = document.createElement("div");
var myHTML = GM_getResourceText("html");
myDiv.innerHTML = myHTML;
document.body.appendChild(myDiv);

文件@resource引用的是您的html文件,您已将其作为工具栏。您还可以@require自己的CSS文件,这样您的HTML就不需要在每个标记中包含样式规则。

这样做是读取您的本地文件,然后将其放入正文中的新div中 你也可以在javascript中创建整个html,但这是一个漫长而烦人的过程,错误风险更高。

注意
有些网站(比如Google)由于某种原因不喜欢这种方法,而是将其抛入隐藏的iframe,这使得它看起来更难看起来有点困难。我在几个站点上测试了这个,在基本站点上,这个方法应该可以工作!