вставить контентный скрипт, когда страница была изменена при помощи history.pushState и ajax call

Я столкнулся с проблемой вставки на страницу скрипта контента, который был изменен при помощи history.pushState и вызова ajax. Я нашелпохожая тема в stackoverflow, но это решение не работает для меня (это решение было в использовании chrome.webNavigation.onHistoryStateUpdated и события "popstate").

Вот фрагмент моего манифеста:

"content_scripts": [
    {
      "matches": ["https://vk.com/audios*", "https://vk.com/al_audio.php*"],
      "js": ["jquery-2.1.4.min.js", "getListOfSongs.js"]
    }
  ]

chrome.webNavigation.onHistoryStateUpdated работает только если я перехожу на другую страницу, если я перехожу на одну и ту же страницу много раз подряд, ничего не происходит. Например: это работает, когда

1) Перейти кhttps://vk.com/audios* - открытие страницы в первый раз или перезагрузка

2) Перейти кhttps://vk.com/some_other_page - звонок ajax

3) Перейти кhttps://vk.com/audios* - вызов ajax

Не работает когда

1) Перейти кhttps://vk.com/audios* - открытие страницы в первый раз или перезагрузка

2) Снова иди кhttps://vk.com/audios* - вызов ajax, в данный момент контентный скрипт не внедряется
3) Снова иди кhttps://vk.com/audios* - вызов ajax, в этот момент скрипт содержимого не внедряется и т. д.

Каждый раз, когда я нажимаю на одну и ту же страницу во второй раз, генерируется следующий запрос:

https://vk.com/al_audio.php?__query=audios********* & _ исх = left_nav & _smt = аудио% 3A2 & ал = -1 & al_id = ******** & _ rndVer = 60742

(параметры запроса могут отличаться)

ТакжеJQuery .ajaxComplete не ловит никаких событий в этом случае.

И pushState не запускает событие «popstate», поэтому я не могу использовать событие window.onpopstate

Я мог бы использоватьchrome.webNavigation.onDOMContentLoaded а такжеchrome.webNavigation.onCompleted но когда я перезагружаю страницу, эти события происходят более одного раза, поэтому сценарий будет вводиться более одного раза.

Каково лучшее решение для этого случая?

Ответы на вопрос(1)

Ваш ответ на вопрос