Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Добрый день. Пытаюсь написать скрипт, чтобы он менял href тега <a>.
Проблема в том, что на сайте используются hash-данные (ну или как там они называются).
В общем URL изначально выглядит вот так: www.site.ru/home/name.
При клике по закладкам, которые есть на странице, он меняется вот так: www.site.ru/home/name/#section.tasks, www[dot]site[dot]ru/home/name/#section[dot]settings и т.д.
Когда через Greasemonkey прикручиваю скрипт к странице, то он ничего не меняет.
На главной странице (www.site.ru/home/name) выглядит вот так:
Так то по-идее код правильный, но из-за того что при переходе по вкладкам на сайте они генерирются с помощью JS, ничего не получается.
Если запускать скрипт через адресную строку на уже сгенерированной странице, то всё нормально работает. (
Dezmont
Отправлено: 19 Ноября, 2012 - 20:18:53
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Хееееееелп.))) Больше ни у кого идей нет? (
armancho7777777
Отправлено: 19 Ноября, 2012 - 20:36:32
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Dezmont пишет:
они генерирются с помощью JS
Они у Вас сами по себе генирируются?
EuGen
Отправлено: 19 Ноября, 2012 - 21:37:22
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Dezmont пишет:
Что-то я не понял... Ничего ж не поменялось?
Поменялось. Во-первых, закрыт тег <a> и во-вторых, id корректно указан.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Dezmont
Отправлено: 19 Ноября, 2012 - 21:38:57
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
armancho7777777 пишет:
Они у Вас сами по себе генирируются?
Честно, не в курсе. Про hash данные в интернете нагуглил только, и понял, что js в зависимости от них страницу дополняет.
http://www[dot]rememberthemilk[dot]com/
Вот там если зарегистрироваться или с помощью гуглуаккаунта войти, можно посмотреть. Сверху страницы сссылки, при нажатии на которые в адресной строке страница изменяется
И так далее.
Т.е. 1-я страница нормально генерируется, а последующие уже дополняют данными открытый шаблон. (Добавление)
EuGen пишет:
Поменялось. Во-первых, закрыт тег <a> и во-вторых, id корректно указан.
Ой. Извините, на html даже не посмотрел.
DlTA
Отправлено: 19 Ноября, 2012 - 21:44:53
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
может не тот элемент выбрали, может на странице несколько элементов с таким id и вы смотрите на второй
Dezmont
Отправлено: 19 Ноября, 2012 - 21:46:11
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Может я и неверно предполагаю, но это единственное, что думается.
Может в скрипте можно как-нибудь прописать, чтобы он следил за изменением параметра href тега a (после загрузки страницы) и при положительном результате совершал необходимые действия. Либо проверял бы hreaf a в соответствии с регуляркой.
Просто реализовать не знаю как, нужно изучать язык. (
DlTA
Отправлено: 19 Ноября, 2012 - 21:46:32
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
при этом в консоле должен появиться html найденного элемента, и при наведении на это html тот же объект на странице будет подсвечен
Dezmont
Отправлено: 19 Ноября, 2012 - 21:49:56
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
DlTA пишет:
ожет не тот элемент выбрали, может на странице несколько элементов с таким id и вы смотрите на второй
Нет. Элемент верный. Всё выполняется нормально просто дело в этих hash данных, которые идут после #. И в способе генерации страницы.Если даже напрямую в браузере набираешь http://www.rememberthemilk.com/home/dezmont/#section.tasks, то тебя сначала кидает на главную страницу (http://www.rememberthemilk.com/home/dezmon), а потом скрипт обрабатывает данные и выдаёт страницу. (Добавление)
DlTA пишет:
попробуйте в хроме
CODE (javascript):
скопировать код в буфер обмена
console.log(document.getElementById('icalendareventslista'));
при этом в консоле должен появиться html найденного элемента, и при наведении на это html тот же объект на странице будет подсвечен
Это нужно выполнить в адресной строке, на нужной странице, предварительно введя javascript:? Если так, то результат у меня нулевой.
А если ввожу в адресной строке:
То в результате получаю алерт с необходимой мне ссылкой.
DlTA
Отправлено: 19 Ноября, 2012 - 21:57:17
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
...
мда, не прочитал суть проблемы, вот то что вы называете хешем это якоря ссылки,
и где нить на странице есть скриптик, который по этим якорям делает дополнительный запрос для подгрузки контента
делается это для порчи жизни тем кто пытается слить сайт, или для поисковиков (чтоб они не находили), или фиг его знает зачем еще
вообще в той же мозили посмотрите что за запросы происходят при подгрузке страницы
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Упс. Извиняюсь за нубство. Прочитал про console.log.
Выполнение команды мне выдало ссылку мою.
DlTA
Отправлено: 19 Ноября, 2012 - 21:59:51
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
Dezmont пишет:
Это нужно выполнить в адресной строке,
F12 последняя вкладка консоль
и там уже лабать
Dezmont
Отправлено: 19 Ноября, 2012 - 22:00:24
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
DlTA пишет:
и где нить на странице есть скриптик, который по этим якорям делает дополнительный запрос для подгрузки контента
Вот вот. Теперь бы додуматься, как бы мне отследить изменение ссылки? Может можно каждую секунду проверять, есть ли необходимая ссылка, и изменять её, если она соответствует регулярке. Ну или какой-нибудь подобный метод? Может есть какие-нибудь идеи?
Гугл выдал hashchange. Может подойдёт?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.