Javascript.RU

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

Удаление элемента DOM при неполном обновлении страницы (ВКонтакте)
Мне требуется убрать определенные блоки с сайта ВКонтакте. Пользуюсь Google Chrome. Создал свое расширение - в нем при загрузке страницы проверяю наличие моего блока - если есть, удаляю. Проблема в том, что ВКонтакте при переходе между разделами не обновляет всю страницу, а только блоки. Соответственно, мой скрипт не вызывается. Приходит в голову идея повесить обработчик клика по разделу - запустить цикл проверки появления блока. Но с паузами в циклах в JS не очень, а без них все виснет, разумеется. Подскажите, как в таком случае поступить?
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2013, 18:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

jsuser,
запускаете постоянный и единственный setInterval и все проверки- действия по нему, период 300ms -500ms - вполне не вешающий
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2013, 18:48
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Я не очень разбирался как реализован переход между страницами в ВКонтакте, но на первый взгляд это HTML5 History API. Поэтому можно слушать событие popstate:
window.addEventListener('popstate', function () {
  //  Тут код который проверяет наличие нужного блока
}, false);
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2013, 18:59
Новичок на форуме
Отправить личное сообщение для jsuser Посмотреть профиль Найти все сообщения от jsuser
 
Регистрация: 08.02.2013
Сообщений: 3

Magneto,
проверил, popstate не происходит при переходе между разделами..
Deff,
спасибо, работает! кривоватая реализация с этим циклом, конечно, но другого не могу придумать..к тому же, если перейти на другую вкладку в хроме, потом опять вернуться - данные на сайте опять обновляются и опять ненужный блок появляется..как можно отловить "такое" обновление страницы?
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2013, 19:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от jsuser
если перейти на другую вкладку в хроме, потом опять вернуться
jsuser,
Onunload - window.onfocus - не сработает ?
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2013, 19:21
Новичок на форуме
Отправить личное сообщение для jsuser Посмотреть профиль Найти все сообщения от jsuser
 
Регистрация: 08.02.2013
Сообщений: 3

Deff,
работает, но опять только с setInterval-ом, иначе ВКонтактовский скрипт обновляет данные чуть позже моего. Ну, впрочем, если неизвестно, что за событие можно слушать в таком случае (какое-нибудь onDOMChanged или что-нибудь вроде предложенного Magneto popstate), то данной реализации с setInterval-ом мне пока вполне хватит! Спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2013, 19:28
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

jsuser,
А принципе - по Onunload можно втыкивать флаг в window.name и если флаг есть - значит мы вернулись на вкладку - отсюда планируем деяния
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
утечка памяти при создании DOM MadLord Общие вопросы Javascript 2 16.08.2010 11:01
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 19:18
удаление DOM элемента и перезагрузка страницы Andrey2005 Общие вопросы Javascript 3 12.10.2009 22:49
Свойство opener обнуляется при обновлении страницы LesPaulFAP Events/DOM/Window 0 12.10.2009 12:09
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 12:13