如何使用 Javascript 为 Twitter 对话中的所有@replies 着色?

How to colorize all @replies in a Twitter conversation using Javascript?

我正在尝试制作一个可以在 Twitter 对话中使用的 greasemonkey 用户脚本
(给名字、用户名和每个第一个 @reply 上色)。

首先,我希望推文中的所有文本和@replies 都具有相同的颜色(黑色)。
我遇到的问题是,通常 @replies 在 Twitter 对话中不是黑色的(因为其余的推文文本 - 除了我不介意的 URL -)但有一些其他颜色。
例如 here 它们是灰色的。

我要把它们都变成黑色

使用 Firefox 的检查器,我在页面源代码中注意到:


所以,我试过这段代码:

var replies = document.getElementsByClassName('twitter-atreply pretty-link');
for (i = 0; i < replies.length; i++) {
  replies[0].style.color = 'black';
}

但是,它不起作用(它不会产生任何错误,也不会)。
我怎样才能让它发挥作用?

问题是您正在更改 div 的样式,其中 包含 您尝试设置样式的元素,而不是元素 他们自己.

目前此页面使用 'a.twitter-atreply.pretty-link' 和元素 children 包含您要设置样式的文本。所以你需要做的就是遍历这些 children,它应该可以工作。

var replies = document.getElementsByClassName('twitter-atreply pretty-link');
for (i = 0; i < replies.length; i++) {

  var children = replies[i].children;

  for (j = 0; j < children.length; j++) {
    children[j].style.color = 'black';
  }
}