Пользовательский скрипт, над которым я работаю, успешно работает на первоначально загруженной странице GitHub. Хотя он должен быть повторно применен, когда GitHub перемещается с помощью PJAX.Прослушивание github.com События PJAX в скрипте пользователя Greasemonkey
Так что мне нужно как-то настроить прослушиватель для PJAX и запустить функцию initialize
.
Заделка unsafeWindow.history.pushState
не будет работать из-за политики безопасности Greasemonkey/Firefox, он будет бросать
Error: Permission denied to access object
Я пытался изучить сценарии страниц и крюк в ajaxComplete
случае unsafeWindow.require('jquery')
, но слушатель не был (возможно, из-за той же политики безопасности, но консоль ошибок пуста).
Есть ли лучшее решение, чем MutationObserver
/DOMSubtreeModified
на элемент контейнера PJAX?
Сценарий предназначен для Firefox/Greasemonkey, но если он будет работоспособен для Chrome/Tampermonkey, это не повредит.
Добавить прослушиватель для '' pjax: end "' event on 'document'. Также выглядит как дубликат [Как сделать переходы страницы стиля github pjax] (http://stackoverflow.com/q/8013818). FWIW работает [пример] (https://greasyfork.org/en/scripts/5982-github-images-as-icons) - как вы видите, MutationObserver также используется, потому что скрипт сайта перезаписывает динамический контейнер * иногда * , – wOxxOm
@wOxxOm Хорошо, спасибо большое! '$ (document) .on ('pjax: end', ...)' работает с копией jQuery, полученной с помощью '@ require'. Не стесняйтесь публиковать это как ответ. – estus