Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Запуск скрипта при каждом переходе между страницами vk (https://javascript.ru/forum/events/44851-zapusk-skripta-pri-kazhdom-perekhode-mezhdu-stranicami-vk.html)

mahishi 04.02.2014 12:15

Запуск скрипта при каждом переходе между страницами vk
 
Здравствуйте, у меня возникла проблема по реализации расширения на хром. Суть проблемы в том, что при переходе между страницами vk, скрипт выполняется только при первой загрузке страницы, а все последующие переходы внутри сайта не выполняется.

Подскажите как можно реализовать выполнение скрипта после каждого перехода?

Яростный Меч 04.02.2014 12:29

mahishi,

попробуй так:
при загрузке страницы
1) подписывайся на событие "popstate" для window той страницы.
2) переопределяй history.pushState:
(function () {
    var win = ... // окно страницы
    var oldPS = win.history.pushState;
    win.history.pushState = function() {
        oldPS.apply(this, arguments);
        // тут твои действия. Урл поменялся, скоро на странице тоже что-то поменяется.
    };
})();

Яростный Меч 04.02.2014 12:32

Суть шаманства: VK использует html5 history для смены урлов без перезагрузки страницы, и надо как-то к этому делу "присовокупиться".

Cuntmann 04.02.2014 14:11

социальные сети - зло

mahishi 04.02.2014 18:54

Цитата:

Сообщение от Яростный Меч (Сообщение 295765)
mahishi,

попробуй так:
при загрузке страницы
1) подписывайся на событие "popstate" для window той страницы.
2) переопределяй history.pushState:
(function () {
    var win = ... // окно страницы
    var oldPS = win.history.pushState;
    win.history.pushState = function() {
        oldPS.apply(this, arguments);
        // тут твои действия. Урл поменялся, скоро на странице тоже что-то поменяется.
    };
})();

Не работает

cyber 04.02.2014 20:14

mahishi, вам нужно найти какой объект отвечает за переход между страницами и либо переопредилить метод или в каком объекте есть обработчик события перехода.


Часовой пояс GMT +3, время: 12:18.