Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569

Применение стилей не вызывает эффекта на элементы

15.02.2025, 08:19. Показов 1587. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте! Не удаётся применить стили css. Инструкция "chrome.scripting.insertCSS" не вызывает ошибок и судя по всему что сообщение выводится в консоль, проходит успешно. Но к добавленным элементам стили не применяются. Они вообще без классов. Как видно, в настройках manifest.json пути прописаны: "assets/*". Даже, если убрать эту настройку - никакого эффекта.

background.js:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
chrome.tabs.onUpdated.addListener(async (tabId, currentTab, tab) => {
 
 
    let target = { tabId: tabId }
 
    const injectedObject = { 
        files: [ "scripts/content.js" ],
        target : target
    }
 
   chrome.scripting.insertCSS({
            target: { tabId: tabId },
            files: [
                "assets/css/main.css"
            ]
   }).then(() => { console.log("CSS Injected") })
 
   chrome.scripting.executeScript(
                injectObject
            ).then(injectionResults => {
                for (const {frameId, result} of injectionResults){
                    console.log(`Frame: ${frameId}, result: ${result}`)
                }
            }).catch((error) => { console.log(`An error occur at draft menu. Details: ${error}`) })
   }
}

content.js

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
async function addMenu () {
     const pageHeader = document 
    let  subscribe = document.querySelector("yt-subscribe-button-view-model")
    if (!subscribe){
        subscribe = await subscribeBlock(cb, pageHeader)// случай динамической загрузки - отслеживание изменений, метод не приведён.
    }
    let hasMenu = subscribe.parentNode.getElementsByClassName("last-seen-align")
 
    if (!hasMenu.length){
        const menu = document.createElement(
            "div", {
                "class": "last-seen-align"
            }
        )
        const lastSeenBtn =  document.createElement(
            "button", {
                "class": "last-seen-btn"
            }
        )
        const commonDiv = subscribe.parentNode
        menu.appendChild(lastSeenBtn)
        commonDiv.appendChild(menu)
}

assets/css/main.css:

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
.last-seen-align {
    display: grid;
    align-content: space-between;
}
 
.last-seen-btn {
    width: 55px;
    height: 55px;
    border: 1px solid white;
    border-radius: 50%;
    background-image: url('../images/logo_very_small.png');
    background-size: cover;
}
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
    "name": "last-seen-approx",
    "version": "0.0.0",
    "manifest_version": 3,
    "icons": {
        "16": "/assets/images/logo_very_small.png",
        "32": "/assets/images/logo_very_small.png",
        "48": "/assets/images/browser_icon.jpeg",
        "96": "/assets/images/logo_big.jpg"
    },
    "background": {
        "service_worker": "scripts/background.js",
        "type": "module" 
    },
    "web_accessible_resources": [
        {
            "matches": [
                "https://www.steamcommunity.com/*"
            ],
            "resources": [
                "assets/*",
                "scripts/modules/*"
            ]
        }
    ],
    "action": {
        "default_icon": {
            "16": "/assets/images/browser_icon.jpeg",
            "32": "/assets/images/logo_very_small.png",
            "48": "/assets/images/browser_icon.jpeg",
            "96": "/assets/images/logo_big.jpg"
        },
        "default_title": "Last seen approx"
    },
    "permissions": [
        "activeTab",
        "scripting",
        "tabs"
    ],
    "host_permissions": [
        "https://www.steamcommunity.com/profiles/*"
    ]
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2025, 08:19
Ответы с готовыми решениями:

Применение стилей при наличии дочерних элементов
Всем доброго времени суток. Возникла проблема. Допустим есть меню: <ul class="header_menu"> <li><a...

Применение стилей к дочерним элементам
Доброго дня! Я новичок в JQuery, как и в JS. По мере освоения материала возникла трудность. <ul class="list"> ...

После применения JS к элементу не срабатывают стили
Добрый день, друзья! Есть такой код. Когда я навожу мышью на "Категория 2" и жму в ней на любую из выпавших подкатегорий, то после...

3
 Аватар для voraa
1289 / 1262 / 187
Регистрация: 21.01.2024
Сообщений: 5,804
15.02.2025, 11:38
Лучший ответ Сообщение было отмечено Alex_py как решение

Решение

Я не силен в расширениях, но вот так в них можно?
const menu = document.createElement(
"div", {
"class": "last-seen-align"
}

)
const lastSeenBtn = document.createElement(
"button", {
"class": "last-seen-btn"
}

)
В обычном js коде так не делается.
1
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
15.02.2025, 14:00  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
В обычном js коде так не делается.
Спасибо =) Да, там это обычный js. Блин, а где же я увидел этот пример тогда, jquery наверняка.

Не по теме:

Совсем уже я, дед уже не соображаю, что пишу =)



Почему-то сам элемент исчезает, если открыть панель разработчика Chrome.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
15.02.2025, 19:04
Цитата Сообщение от Alex_py Посмотреть сообщение
а где же я увидел этот пример тогда
В React делают таким образом...

JavaScript
1
2
3
4
5
6
7
8
9
import { createElement } from 'react';
 
function Greeting({ name }) {
  return createElement(
    'h1',
    { className: 'greeting' },
    'Hello'
  );
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2025, 19:04
Помогаю со студенческими работами здесь

Применение стилей
Добрый день. Начал изучать WPF, но что-то не выходит. Если жестко прописывать с ключом - стиль применяется. Если делать автоматическую...

Применение стилей
Здравствуйте!Имеется один общий файл стилей для всех страниц. Нужно, чтобы один и тот же элемент отображался на разных страницах сайта...

Применение стилей
Как написать воть это, только в коде с#?! <TextBlock Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" Name="aktText03"...

Применение стилей к фрейму
Здравствуйте, форумчане! У меня такой вопрос, можно ли применить CSS стили к элементам который отображаются через IFRAME? Например,...

Применение стилей к программе
Создал стиль на WPF как теперь стиль применить т.е как добавить в свою программу?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru