我正在尝试修改网站上CometChat的颜色,由于拥有未经修改的CometChat,该网站将保持匿名状态。我只想更改着色,但更喜欢在用户样式扩展上使用Greasemonkey,因为不想为单个页面安装单个扩展名。
我已经改变了背景颜色,因此它是黑色的,在我将默认文本颜色(黑色)修改为白色之前这很好。
系统似乎根据Cookie中的颜色设置文本样式,但它在跨度上使用内联样式。
我无法弄清楚如何只修改内联样式,它是“颜色:#000000”(不,它们没有附加“;”)而不更改所有其他颜色,并从中删除一个功能聊天。
我试过了:
.attr
查找值,然后应用具有!important
颜色的类。 .attr
直接更改颜色。我还尝试了span[style="color:#000000"]
和其他一些方法,到目前为止还没有任何工作。
我注意到的一件事是,在尝试alert()
时,看看它是否正常工作(在.each
期间的某些尝试中),它不会创建警报。我能想到的唯一原因是它是几个Div深入到文档中。 (html > body > div#container > div#currentroom > div#currentroom_left > div#currentroom_convo > div#currentroom_convotext > div > div.cometchat_chatboxmessage > span.cometchat_chatboxmessagecontent > span
(我想编辑的那个))
答案 0 :(得分:1)
我猜测那些/那些跨度是由AJAX添加的(无法从问题中得知)。无论他们是否,您都可以使用waitForKeyElements()
来更改/他们:
// ==UserScript==
// @name YOUR_SCRIPT_NAME
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
waitForKeyElements (
"#currentroom_convotext div.cometchat_chatboxmessage > span.cometchat_chatboxmessagecontent > span",
changeChatMessageCSS
);
function changeChatMessageCSS (jNode) {
jNode.css ("color", "white");
}
指示页面是重置内联样式还是在其CSS中使用!important
。 (它可能也没有。)