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

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

Кирилл Фонкеров Ученик (114), на голосовании 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# по этому не могу понять как это сделать
кто сможет пишите свои коды как вы это сделали
Голосование за лучший ответ
Jacob G. Искусственный Интеллект (222394) 2 месяца назад
html ты не изменишь расширениями, только css и js.

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

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

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

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

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