1

我正在尝试在一个网站上修改 CometChat 的颜色,由于有一个未修改的 CometChat,该网站将保持匿名。我只想更改颜色,但由于不想为单个页面安装单个扩展,我更喜欢使用 Greasemonkey 而不是用户样式扩展。

我已将背景颜色更改为黑色,这很好,直到我将默认文本颜色(黑色)修改为白色。
系统似乎根据 Cookie 中的颜色设置文本样式,但它在跨度上使用内联样式。

我不知道如何只修改“颜色:#000000”的内联样式(不,它们没有附加的“;”)而不更改所有其他颜色,并从聊天中删除一个功能。

我试过:

  • 使用 jQuery.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(我想编辑的那个))

4

1 回答 1

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");
}



指示页面是否重置内联样式或!important在其 CSS 中使用。(它可能也不行。)

于 2013-03-17T11:22:31.797 回答