Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2019, 02:19
Новичок на форуме
Отправить личное сообщение для vgiv Посмотреть профиль Найти все сообщения от vgiv
 
Регистрация: 09.11.2019
Сообщений: 3

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. Для того, чтобы изменились и они, нужно перезагрузить страницу.

Почему так происходит? Как расширению получить реальные текущие координаты фото?

Владимир.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
React, single page Alexandroppolus Библиотеки/Тулкиты/Фреймворки 6 19.11.2018 12:39
Продолжение перемотки слайда, после выбора определенного HappyZadrot Общие вопросы Javascript 2 20.12.2016 17:18
Angular JS. Web-search. Application. Mihail_1997 Angular.js 0 19.07.2016 11:58
"Листание" текста в форме путем нажатия кнопки dikabraz Общие вопросы Javascript 20 25.08.2015 13:27
Front-End, Backbone, Marionette, One Page Application [Удаленно или в офис] Svizhooo Работа 2 16.12.2014 12:24