Opera addon, изменить цвет текста URL - PullRequest
0 голосов
/ 10 июня 2018

У меня есть .html, который содержит:

<article class="<article  ">
<div class="post">
    <p>
        <span class="class22">
            <span class="class33">
                <a class="class44" href="/whatever">TextToColor</a>
            </span>
        </span>
    </p>
</div>

Мой manifest.json выглядит так:

{
"manifest_version": 2,

"name": "Opera Extension",
"description": "description",
"version": "1.0"

, "background": {
    "scripts": ["background.js"]
}

, "permissions": [
  "tabs", "activeTab", "*://*/*", "http://*/*", "https://*/*", "file:///*/*"
]

, "web_accessible_resources": [
    "fix.css"
]

, "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["content.js"],
    "all_frames": true
}]

}

Содержимое.js

chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
if (msg.text === 'getNames') {
    var shouldBeColored = [];
    var arrayWithNames = document.getElementsByClassName("class44");
            for(var i=0; i<arrayWithNames.length; i++) {
                shouldBeColored[i] = arrayWithNames[i].innerHTML;

                if(shouldBeColored[i] == 'TextToColor') {
                    div = document.createElement( 'div' );
                    div.textContent = 'Upper text Should be red';
                    div.style['background-color'] = 'red';
                    arrayWithNames[i].appendChild( div );
                }
            }
    sendResponse(shouldBeColored);  
    return true;
}

});

и, наконец, background.js:

chrome.tabs.onUpdated.addListener( 
function (tabId, changeInfo, tab) {
    if (changeInfo.status == 'complete' && tab.active) {
        chrome.tabs.sendMessage(tab.id, {text: 'getNames'}, gotNames);
    }
})
function gotNames(arrayOfNames) {
var shouldBeColored = ['TextToColor', 'TextToColor2'];

if(arrayOfNames){
    for(var i=0; i<arrayOfNames.length; i++) {
        if(shouldBeColored.includes(arrayOfNames[i])) {
            alert(arrayOfNames[i]);
        }
    }
}}

В настоящее время я могу сделать это, чтобы показать предупреждение с помощьюимена, найденные на странице и которым я пытаюсь установить цвет.У меня вопрос: как установить определенный цвет, визуально видимый на экране для этих элементов.Допускаются любые манипуляции, включая инъекцию css / js, что угодно.Я совершенно новичок в js и css, и мне жаль, если что-то в описании не имеет смысла.

...