更改Greasemonkey中的文本颜色

时间:2014-10-08 01:01:18

标签: javascript html greasemonkey

我想编写一个Greasemonkey脚本,它将改变任何页面上文本的颜色,同时保持结构不变。我想将前10个可见字符改为红色,接下来的10个为蓝色,下一个再为红色,依此类推。

我看到了两种可能的解决方法:

  1. 遍历页面上的每个元素,检查它是否包含显示的文本并更改文本颜色。我想这可以通过使用document.getElementsByTagName('html')[0].innerHTML获取所有元素然后调用elements[i].textContent来获取文本来完成,但我不知道如何确定文本是否可见。这将返回< script>内的文本元素和向这些元素添加颜色属性将破坏页面。
  2. 使用window.getSelection().addRange(WholePage)之类的内容选择页面上的文字但我不知道如何更改文字颜色。
  3. 如果您想到任何其他方法,请随时提出建议。

1 个答案:

答案 0 :(得分:1)

试试这个(使用jQuery)。

$('p, li').each(function(){
     var length = $(this).text().length;
     var newStr = "";
     for (var i = 0; i < length; i+=20) {
         newStr += '<span style="color:red">' + $(this).text().substring(i, i + 10) + '</span>';
         newStr += '<span style="color:blue">' + $(this).text().substring(i + 10, i + 20) + '</span>';
     }

     $(this).html(newStr);
});