Доброе время суток!
Первый вопрос на эту тему я задал
вот тут, и попытался поступить согласно данному там совету. Перепробовал много вариантов, но чего-то по-прежнему не понимаю. Так как формулировка вопроса несколько изменилась, то я решил, что стоит начать новую тему.
Итак, я решаю задачу: написать расширение для 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. Для того, чтобы изменились и они, нужно перезагрузить страницу.
Почему так происходит? Как расширению получить реальные текущие координаты фото?
Владимир.