2013-03-17 2 views
1

CometChat을 수정하지 않아서 익명으로 유지되는 웹 사이트에서 CometChat의 색칠을 수정하려고합니다. 색칠을 변경하고 싶지만 단일 페이지의 단일 확장을 설치하지 않으려 고 사용자 스타일 확장에 Greasemonkey를 사용하는 것을 선호합니다.수정 인라인 스타일링, 다중 요소 심도

배경색이 검은 색이되도록 변경 했으므로 기본 텍스트 색 (검정색)을 수정하여 흰색으로 바꿀 때까지 괜찮습니다.
시스템이 쿠키의 색상을 기반으로 텍스트의 스타일을 지정하지만 스팬에서 인라인 스타일을 사용합니다.

"color : # 000000"인 인라인 스타일 만 수정하는 방법을 알아낼 수 없습니다 (아니요, ";"가 추가되지 않습니다). 다른 색상은 모두 변경하지 않고 기능을 제거하지 않아도됩니다. 채팅에서.

내가 시도 :

  • 다음 !important 색상을 가진 클래스를 적용, 값을 찾기 위해 jQuery의 .attr 사용.
  • .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

오, 내가 언급해야합니다 전체 채팅은 동적으로 생성을위한 JQuery와 PHP를 통해 Cometchat : ( – Nikey646

답변

1

AJAX에 의해/span이 추가 된 것 같습니다 (질문에서 알 수 없음). 그들이 여부에 상관없이, 당신은 /을 변경하는 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을 사용하는지 여부를 나타냅니다. (아마도 그것도하지 않습니다.)

+0

해결책을 시도하고, 나는 새로운 사용자 스크립트에서 그것을 가지고 있지만 그것은 작동하지 않는 것으로 보입니다. (요소가 변경되지 않습니다.) 또한 이전에 전송 된 정보를 재설정하지 않지만 새로 고칠 때 전체 페이지를 다시 빌드합니다. – Nikey646

+0

좋아, 제대로 작동하는 것처럼 보입니다. , 나는 단지 몇 가지 개념을 이해해야했다. (jNode가 무엇인지 (자바 스크립트 XD에 관해서는 완전히 바보이다.) 그리고 올바르게 사용하는 방법과 같다!). 내 솔루션은'if (jNode.attr ('style') == 'color : # 000000') {jNode.css ('color', 'red');}'도움을 많이 주셔서 감사합니다 !! (편집 :>) – Nikey646

+0

그것은 작동합니다. –