@Zailox

Как изменить скрипт сайта через js?

Есть один сайт, использующий скрипт, который я могу редактировать при помощи панели разработчика. Как можно редактировать его не из панели, а при помощи расширения?

(Перед написанием попробовал в консоль писать "document.loremipsum()" - выдавало ошибку "loremipsum() is not a function", пытался редактировать переменные - тоже не получается, консоль пишет одни числа, а по факту они другие.)

Как можно это реализовать?
Заранее спасибо.
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Пользовательские скрипты - TamperMonkey и прочие обезьянки.

попробовал в консоль писать "document.loremipsum()" - выдавало ошибку "loremipsum() is not a function"

Прежде, чем вызвать функцию, её надо сначала определить - о чём вам консоль и написала. RTFM.
Ответ написан
Комментировать
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если вопрос на самом деле: "Почему из расширения не доступны глобальные переменные и функции?", то ответ - потому что расширения работают через слой безопасности, чтобы тебя случайно не взломали через твоё расширение.

Как добраться до глобальных переменных через этот слой - зависит от конкретного браузера. Читай документацию.

Универсальный подход(при отсутствии CSP) - просто добавить на страницу script с нужным содержимым. Примерно так:
function runInScript() {
  // здесь везь код, независимый от иных функций
  document.loremipsum()
}



document.head.append(
  Object.assign(
    document.createElement('script'),
    {
      innerHTML: `(${runInScript.toString()})()`,
      onload() { this.remove() }
    }
  )
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы