0 / 0 / 0
Регистрация: 02.03.2023
Сообщений: 3

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

02.03.2023, 14:41. Показов 809. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru