我想编写一个Greasemonkey脚本,它将改变任何页面上文本的颜色,同时保持结构不变。我想将前10个可见字符改为红色,接下来的10个为蓝色,下一个再为红色,依此类推。
我看到了两种可能的解决方法:
document.getElementsByTagName('html')[0].innerHTML
获取所有元素然后调用elements[i].textContent
来获取文本来完成,但我不知道如何确定文本是否可见。这将返回< script>内的文本元素和向这些元素添加颜色属性将破坏页面。window.getSelection().addRange(WholePage)
之类的内容选择页面上的文字但我不知道如何更改文字颜色。 如果您想到任何其他方法,请随时提出建议。
答案 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);
});