Удаление элемента DOM при неполном обновлении страницы (ВКонтакте)
Мне требуется убрать определенные блоки с сайта ВКонтакте. Пользуюсь Google Chrome. Создал свое расширение - в нем при загрузке страницы проверяю наличие моего блока - если есть, удаляю. Проблема в том, что ВКонтакте при переходе между разделами не обновляет всю страницу, а только блоки. Соответственно, мой скрипт не вызывается. Приходит в голову идея повесить обработчик клика по разделу - запустить цикл проверки появления блока. Но с паузами в циклах в JS не очень, а без них все виснет, разумеется. Подскажите, как в таком случае поступить?
|
jsuser,
запускаете постоянный и единственный setInterval и все проверки- действия по нему, период 300ms -500ms - вполне не вешающий |
Я не очень разбирался как реализован переход между страницами в ВКонтакте, но на первый взгляд это HTML5 History API. Поэтому можно слушать событие popstate:
window.addEventListener('popstate', function () { // Тут код который проверяет наличие нужного блока }, false); |
Magneto,
проверил, popstate не происходит при переходе между разделами.. Deff, спасибо, работает! кривоватая реализация с этим циклом, конечно, но другого не могу придумать..к тому же, если перейти на другую вкладку в хроме, потом опять вернуться - данные на сайте опять обновляются и опять ненужный блок появляется..как можно отловить "такое" обновление страницы? |
Цитата:
Onunload - window.onfocus - не сработает ? |
Deff,
работает, но опять только с setInterval-ом, иначе ВКонтактовский скрипт обновляет данные чуть позже моего. Ну, впрочем, если неизвестно, что за событие можно слушать в таком случае (какое-нибудь onDOMChanged или что-нибудь вроде предложенного Magneto popstate), то данной реализации с setInterval-ом мне пока вполне хватит! Спасибо! |
jsuser,
А принципе - по Onunload можно втыкивать флаг в window.name и если флаг есть - значит мы вернулись на вкладку - отсюда планируем деяния |
Часовой пояс GMT +3, время: 22:13. |