@Byakugan

Как загрузить страницу уже с выполненным js?

Я делаю расширение для google chome, оно добавляет на нужный мне сайт картинки к определенным элементам через jquery. Но когда я загружаю нужную страницу я вижу результат скрипта не сразу, он работает с задержкой, как это можно фиксить ?
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 2
@VadimKholodilo
У Google Chrome расширений есть 2 вида скриптов: background и, назавём их, foreground (Не помню точно, как они называются в документации).
Background работают тогда, когда запущено расширение, а foreground тогда, когда загружена определенная страница, которую вы прописали в manifest.json
Эти foreground скрипты подгружаются тогда, когда прогрузилась вся страница. Если что-то всё же блокирует страницу, то это и создаёт вам проблему.
Посмотрите в сторону background скриптов, но производительность Chrome немного упадёт, так как вам надо будет постоянно проверять, а какая страница была подгружена.
Ответ написан
Dr_Elvis
@Dr_Elvis
Сталкивался с этим. Решил эту проблему так:
1) Нашёл скрипт после выполнения которого мне нужно выполнить свой
2) Через innerHTML изменил название функции(но не вызова этой функции) из например foo() на foozzz()
3) В своём расширении создал функцию foo() ровно с тем же кодом, но в конце добавил свой код или вызов своей функции(в вашем случае будет код добавления элементов)
4) Сделал inject моей функции foo() в head страницы.

В итоге при загрузке страницы у вас заменится код функции сервера на ваш, точно такой же, но в дополнении со своим кодом. Вызов функции будет как и должен быть, через сколько то нужных секунд, поэтому ваш код сработает когда нужно.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы