Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как через Tampermonkey изменить html код

Кирилл Фонкеров Ученик (143), на голосовании 1 год назад
мне нужно на сайте вк изменить код например статуса на определённом пользователе вот если что html
<span class="vkuiFootnote vkuiTypography--normalize vkuiTypography--weight-3">таблы , дым , адреналин... 19.07.23<img class="emoji" src="/emoji/e/f09f9295.png" alt="?"><img class="emoji" src="/emoji/e/e29ca8.png" alt="✨"></span>

и надо убрать 2 иконки и изменить текст: таблы , дым , адреналин... 19.07.23

как это возможно сделать я не знаю js но знаю c# по этому не могу понять как это сделать
кто сможет пишите свои коды как вы это сделали
Голосование за лучший ответ
Яков Гото Искусственный Интеллект (320610) 1 год назад
html ты не изменишь расширениями, только css и js.

 const vkui = document.querySelector('.vkuiFootnote');
const imgs = vkui.querySelectorAll('img');

vkui.textContent = 'таблы , дым , адреналин... 19.07.23';
imgs.forEach(e => e.alt = '');

Что-то подобное должно сработать.
Кирилл ФонкеровУченик (143) 1 год назад
всё работает можно и без нижней строки спасибо бро
Кирилл ФонкеровУченик (143) 1 год назад
только 1 минус он срабатует только если 2 раз перезагрузить страницу когда я первый раз захожу он не меняет а второй и последующие меняет я не знаю если не сложно как это можно исправить
Яков Гото Искусственный Интеллект (320610) Думаю, тут дело в расширении, его специфики работы. Даже не знаю, в теории можно было бы повестить какой-нибудь обсервер для динамического обновления скрипта, или типа того. Но это надо тестировать и лично смотреть.
Кирилл ФонкеровУченик (143) 1 год назад
Uncaught (in promise) TypeError: Cannot set properties of null (setting 'textContent')
Яков Гото Искусственный Интеллект (320610) Есть большая вероятность, что контент подгружается постепенно. А расширение срабатывает сразу при загрузке DOM. Так что получается, что он пытается применить свойство к несуществующему элементу.
Кирилл ФонкеровУченик (143) 1 год назад
я нашёл как решить эту проблему

const vkui = document.querySelector('.vkuiFootnote');

try
{
vkui.textContent = 'текст';
}
catch
{
location.reload();
}
Яков Гото Искусственный Интеллект (320610) странно что это работает, ибо location.reload() по сути просто должен вкладку перезагрузить.
Кирилл ФонкеровУченик (143) 1 год назад
спасибо 2 раз искал как эта штука делается типа задержки
Кирилл ФонкеровУченик (143) 1 год назад
я короче создал цикл с задержкой и когда текст изменён он перестаёт работать
Яков Гото Искусственный Интеллект (320610) да, цикл, а еще лучше setInterval, с отменой самого себя, когда код успешно выполнен, явно лучший вариант
Кирилл ФонкеровУченик (143) 1 год назад
более меня стабильно и моментально
Похожие вопросы