MutationObserver и Single Page Application
Доброе время суток!
Первый вопрос на эту тему я задал вот тут, и попытался поступить согласно данному там совету. Перепробовал много вариантов, но чего-то по-прежнему не понимаю. Так как формулировка вопроса несколько изменилась, то я решил, что стоит начать новую тему. Итак, я решаю задачу: написать расширение для Firefox, которое отслеживало бы смену координат фото на странице типа этой: https://pastvu.com/p/352624. Эти координаты содержаться в заголовке страницы и имеют примерно такой вид: "geo":[59.382348,28.204023] Так как страница при навигации меняется хитрым образом (произносились таинственные слова "Single Page Application", хотя я очень приблизительно понимаю, что это такое), то мне посоветовали использовать MutationObserver. Итак, я пишу такое тестовое расширение: callback = function(mutationRecords) { for ( var mutationRecord of mutationRecords ) { // найти в заголовке страницы координаты фото var xy = document.head.textContent.match(/"geo":\[(.*?)]/); // и вывести их в консоль console.log( 'xy='+xy ); } } var observer = new MutationObserver( callback ); observer.observe( document.head, {childList: true, subtree: true, attributes: true, characterData: true, characterDataOldValue: true, attributeOldValue: true} ); При каждом изменении заголовка координаты xy должны выводиться в консоль. Если я меняю фото (кликая по мини-карте справа), то заголовок (и xy), должны меняться. И действительно, если посмотреть код страницы после смены фото, то числа после "geo" меняются. Но, увы, в консоль выводятся прежние xy. Для того, чтобы изменились и они, нужно перезагрузить страницу. Почему так происходит? Как расширению получить реальные текущие координаты фото? Владимир. |
Часовой пояс GMT +3, время: 22:39. |