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

Я новичёк и пишу расширения для гугл хрома для вывода цен скинов на сайте

02.03.2023, 14:41. Показов 789. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я новичёк и создаю расширение для гугл хрома которое будет работать на сайте https://plg.bet/ru/withdraw/csgo на данном сайте есть div с класами bank_item_unit которые динамически добавляются на сайте в них содержатся от 1 до 4 блока в которых находятся названия скинов которые состоят из 4 span-ов с класами inventory_item_name inventory_item_label
inventory_item_prefix inventory_item_category я понимаю что нудно немного но подругому не рзказать или можете просто зайти на сайт посмотреть как там всё устроено сами и мне нужно что бы розширение копировало название скина конкретного блока и пробивал его на торговой площадке стим я придумал зделать это переходом на сайт https://steamcommunity.com/market/search?q= + название скина и взятие оттуда первого же span с класом normal-price но может есть более простой способ вот мой код который я написал:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
let timerId; 
function bebra() {
  if (timerId) {
    window.clearTimeout(timerId);
  }
 
  // Создаем новый таймер и сохраняем его идентификатор
  timerId = window.setTimeout(function() {
    const bankItems = document.querySelectorAll('.bank_item_unit');
    bankItems.forEach(function(bankItem, index) {
      const inventoryItems = bankItem.querySelectorAll('.inventory_item');
      inventoryItems.forEach(function(inventoryItem) {
        const itemCost = inventoryItem.querySelector('.inventory_item_cost');
        const itemName = inventoryItem.querySelector('.inventory_item_name');
        const itemLabel = inventoryItem.querySelector('.inventory_item_label');
        const itemPrefix = inventoryItem.querySelector('.inventory_item_prefix');
        const itemCategory = inventoryItem.querySelector('.inventory_item_category');
        const itemNameStr = itemName ? itemName.innerText : '';
        const itemLabelStr = itemLabel ? itemLabel.innerText : '';
        const itemPrefixStr = itemPrefix ? itemPrefix.innerText : '';
        const itemCategoryStr = itemCategory ? itemCategory.innerText : '';
        const nameItem = itemNameStr + ' ' + itemLabelStr + ' ' + itemPrefixStr + ' ' + itemCategoryStr;
        const steamLink = 'https://steamcommunity.com/market/search?q=' + encodeURIComponent(nameItem);
        fetch(steamLink)
          .then(response => response.text())
          .then(data => {
            const parser = new DOMParser();
            const steamDoc = parser.parseFromString(data, 'text/html');
            const normalPrice = steamDoc.querySelector('.normal_price');
            if (normalPrice) {
              const price = normalPrice.innerText;
              const newButton = document.createElement('label');
              newButton.innerHTML = price;
              newButton.style.display = 'block';
              newButton.style.marginTop = '10px';
              newButton.style.color = 'white';
              newButton.dataset.index = index;
              itemCost.appendChild(newButton);
              const plgBetItemCost = bankItem.querySelector('.inventory_item_cost[data-index="' + index + '"]');
              if (plgBetItemCost) {
                plgBetItemCost.innerText = price;
              }
            }
          })
          .catch(error => console.error(error));
      });
    });
  }, 1500);
}
 
bebra();
 
document.addEventListener('DOMNodeInserted', function(event) {
  if (event.target.classList && event.target.classList.contains('bank_item_unit')) {
    bebra();
  }
});
Но данный код почему то не работает вот ещё файл manifest.json:
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
27
28
29
30
{
  "manifest_version": 3,
  "name": "Polygon Helper",
  "version": "1.0",
  "description": "Расширение для удобной работы с сайтом CS:GO Polygon",
  "background": {
    "service_worker": "background.js",
    "type": "module" 
  },
  "host_permissions": [
    "https://plg.bet/ru/withdraw/*",
    "https://steamcommunity.com/market/*"
  ],
  "content_scripts": [
    {
      "matches": ["https://plg.bet/ru/withdraw/*"],
      "js": ["polygon.js"]
    }
  ],
  "permissions": [
    "storage",
    "activeTab"
  ],
  "icons": {
    "16": "icon.png",
    "48": "icon.png",
    "128": "icon.png",
    "256": "icon.png"
  }
}
Вот ещё ошибки которые пишутся в консоль
Code
1
2
3
4
5
6
TypeError: Failed to fetch
    at polygon.js:26:9
    at NodeList.forEach (<anonymous>)
    at polygon.js:14:22
    at NodeList.forEach (<anonymous>)
    at polygon.js:12:15
Помогите пожалуйста как-то исправить код что-бы он работал так ка я описал буду очень вам блогадарен
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2023, 14:41
Ответы с готовыми решениями:

Что учить для написания расширения для хрома?
Буду краток, раньше вообще не лез в веб-разработку. Имею небольшой опыт работы с С++ и Java. Расширение должно исполнять обязанности...

Расширения для Хрома
Есть расширение, которое состоит из одного скрипта. Мне нужен этот скрипт, но я не знаю, как скачать расширение для Хрома на компьютер и...

Расширение для гугл хрома
Есть расширение для хрома, которое автоматически ищет стикеры на оружии для кс го на сайте https://cs.money/ Так вот когда нажимаешь на...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2023, 14:41
Помогаю со студенческими работами здесь

Настройка расширения для хрома manifest.join
Мужики, подскажите. Как правильно настроить манифест. Конфиг расширения для хрома { &quot;name&quot;: &quot;Your website...

Расширения для хрома уроки,статьи,мануалы !
Решил залезть в расширения для хрома Приятно удивился когда понял что нового не чего учить почти и не надо ! Т.к знания js html css...

Расширение для гугл хрома. Настройка политики безопасности в манифесте
Калит уже этот параноик. Сначала оказалось, что в приложениях нельзя писать javascrit код непосредственно на странице, только можно...

расширение для хрома, доступ к настройкам хрома, управление UI
Всем привет! Хочу написать для себя небольшое расширение. суть: при клике на иконку пропадает панель с закладками (если она открыта), и...

Для обновления цен поставщиков необходимо указывать тип цен
Какого то чёрта при проведении накладной выскакивает сообщение &quot;Для обновления цен поставщиков необходимо указывать тип цен!&quot; ....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru