İçerik script'i history.pushState ve ajax çağrısı ile değiştirilen sayfaya eklerken sorunla karşılaştım. Stackoverflow'ta similar topic'u buldum, ancak bu çözüm benim için çalışmıyor (bu çözüm chrome.webNavigation.onHistoryStateUpdated ve "popstate" olayının kullanımıydı). i başka bir sayfaya gidin eğer ben sırayla aynı sayfaya defalarca gezinmek eğersayfa history.pushState ve ajax çağrısı ile değiştirildiği zaman içerik komut dosyası ekleyiniz
"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, çalışır hiçbir şey olmaz: Burada
benim manifestin bir parçasıdır . Örneğin: ajax - https://vk.com/audios * git) ajax arama3 - - açılış sayfası ilk defa veya yeniden) https://vk.com/some_other_page git
1) https://vk.com/audios * git zaman çalışır açılış sayfası ilk defa veya
yüklenmesi -1) https://vk.com/audios * git zaman çalışmıyor
çağrı
2) Yine https://vk.com/audios * gidin - böylece enjekte ve olmayan bu nokta İçerik komut de, ajax arama - https://vk.com/audios * gitmek Yine)
3 enjekte edilmez bu nokta İçerik komut de, ajax arama
i aşağıdaki istek üzerine ikinci kez ve bu yüzden aynı sayfaya tıklayarak ediyorum her zaman oluşturuyor:
https://vk.com/al_audio.php?__query=audios ********* & _ref = left_nav & _smt = ses% 3A2 & al = -1 & al_id = ******** & _rndVer = 60742
Ayrıca JQuery .ajaxComplete bu durumda herhangi bir etkinliği yakalamak değil (istek parametreleri değişebilir).
Ve pushState "popstate" olayı değildir, bu yüzden chrome.webNavigation.onCompleted ve chrome.webNavigation.onDOMContentLoaded kullanabilir i window.onpopstate olayı
kullanamazsınız, ancak Sayfayı yeniden yükle, bu olaylar bir kez daha gerçekleşiyor, bu yüzden komut dosyası bir kereden fazla enjekte edilecek.
Bu dava için en iyi çözüm hangisidir?
_ "Ben benzer bir konu stackoverflow'ta bulundu, fakat bu çözüm benim için işe yaramıyor. ”Bunu daha iyi açıklamanız gerekecek. – Xan
Tüm gönderide açıkladım. Chrome.webNavigation kullanımı.onHistoryStateUpdated ve popstate olay bu konuyla de çözüm olarak önerilmiştir, ama bu çözüm yukarıda belirttiğimiz benim için çalışmaz. –
Bulduğun çözüme bağlanabilir misin? – Xan