Kinopoisk+

Add links to search torrent sites under movie poster

< Feedback on Kinopoisk+

Question/comment

§
Posted: 11. 11. 2018
Edited: 14. 11. 2018

[bug] Использование $(document).ready не даёт гарантированного результата

Привет, я занимаюсь разработкой скрипта RU AdList JS Fixes (https://greasyfork.dpdns.org/en/scripts/19993-ru-adlist-js-fixes) и мне сообщили, что в Firefox 52 ESR при использовании одновременно моего и твоего скриптов кнопки поиска не всегда появляются (особенно если удалить cookie). На сколько я понял, загрузка моего скрипта немного откладывает загрузку твоего из-за чего твой скрипт отрабатывает тогда, когда документ уже прогрузился. В результате вызов $(document).ready не делает ничего и, соответственно, весь твой код не отрабатывает.

Происходит это из-за того, что Tampermonkey/Greasemonkey по-умолчанию запускают скрипты нето на DOMContentLoaded, нето на событии непосредственно до него. Если $(document).ready не успевает отработать до DOMContentLoaded, то после от него уже толку нет и callback уже не запускается.

Рекомендую удалить $(document).ready. В моих тестах этого вполне достаточно для стабильной работы скрипта. Если нужна загрузка именно на DOMContentLoaded, то добавь в метаданные: // @run-at document-start а вместо $(document).ready воспользуйся document.addEventListener('DOMContentLoaded', callback_function, false); Тогда скрипт стартует задолго до окончания загрузки страницы, но основной код выполнится только когда страница будет уже доступна.

И ещё, добавь в метаданные (либо замени существующие строки): // @include https://kinopoisk.ru/film/* // @include https://www.kinopoisk.ru/film/* Так-как сейчас твой скрипт смотрит только на http, а сайт перенаправляет на https и твой код не отрабатывает.

§
Posted: 14. 11. 2018

В общем, я сделал свою версию скрипта: https://greasyfork.dpdns.org/en/scripts/374380-kinopoisk

Post reply

Sign in to post a reply.

长期地址
遇到问题?请前往 GitHub 提 Issues,或加Q群1031348184

赞助商

Fishcpy

广告

Rainyun

注册一下就行

Rainyun

一年攒够 12 元