Страница 1 из 1

Что это за ссылка?

СообщениеДобавлено: 30.01.2016 (Сб) 20:18
Adam Smith
Код: Выделить всё
<a href="#" onclick="moj.jscr(document.getElementById('j_idt703'),{'j_idt703:creatingContract:0:j_idt804':'j_idt703:processingContractList:0:j_idt804'},'');return false">Экспорт в Excel</a>
Для меня это какие-то эльфийские руны. Может кто-нибудь объяснить мне, что это и с чем его едят?
Можно ли как-то автоматизировать этот Экспорт в Excel с авторизацией например с помощью WinHTTP?

Re: Что это за ссылка?

СообщениеДобавлено: 30.01.2016 (Сб) 21:29
Хакер
Ссылка на #, только и всего.

Но DOM-элементу на событие onclick навешан обработчик, написанный на JavaScript. Тот факт, что эта элемент <a> тут вообще практически никакой роли не играет.

Re: Что это за ссылка?

СообщениеДобавлено: 30.01.2016 (Сб) 21:43
Adam Smith
В теме http://bbs.vbstreets.ru/viewtopic.php?f=56&t=40300 я вычитал совет
iGrok писал(а):А по-хорошему, надо расковыривать js-код на странице, чтобы выяснить какой именно запрос даёт тебе нужные данные.
При помощи FireFox с его FireBug это сделать относительно просто. Тогда даже не придётся парсить выданный HTML ...

Видимо нужно узнать, что делает закрепленный скрипт и если удастся сделать тоже самое, то можно будет автоматизировать экспорт.
Попробую через Google Chrome DevTools F12

Re: Что это за ссылка?

СообщениеДобавлено: 30.01.2016 (Сб) 23:27
Adam Smith
Отправляется POST запрос с мудрёным динамическим набором данных, в ответ приходит новый URL на который отправляется GET запрос, в ответ xls файл.
Я уверен, что не осилю эти заклинания. Куки и Content-Encoding: gzip атас, даже в коде скрипта не разобрался, чтобы понять, как и из чего он генерит это:
j_idt573=j_idt703&javax.faces.ViewState=-657503020436:-599977460298&j_idt703:processingContractList:0:j_idt804=j_idt703:processingContractList:0:j_idt804
Красным отметил динамические данные, остальное пока неизменно, но возможно это так пока документ Excel на сайте не обновится.

Короче, единственный мой вариант отлавливать окно закачки IE и посылать ему пробел, чтобы нажать кнопку по-умолчанию.

Re: Что это за ссылка?

СообщениеДобавлено: 08.02.2016 (Пн) 20:40
Adam Smith
Отлавливанием и нажатием одной кнопки не обошлось конечно. Жду появления диалогов, вношу туда нужные изменения, жмякаю кнопки. Качается эксель.
За ответ спасибо!

Re: Что это за ссылка?

СообщениеДобавлено: 08.02.2016 (Пн) 21:28
Kroos
похоже на сервере к которому идет запрос крутится одна из реализаций JSF, и то что ты выделил красным, этот параметр - просто описание состояния страницы и UI. Так что по идее, если при текущем состоянии ViewState загрузка возможна, то можешь просто этот параметр запомнить, если сделано без всяких хитрушек:
Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется.

Re: Что это за ссылка?

СообщениеДобавлено: 09.02.2016 (Вт) 9:57
Adam Smith
От сессии к сессии этот параметр меняется. Не проверял, но думаю, что использовать статичные цифры не удастся, а держать бесконечно одну сессию я не хочу. Хотя наверное так было бы правильнее, не знаю, просто нет такого опыта.

Re: Что это за ссылка?

СообщениеДобавлено: 09.02.2016 (Вт) 13:46
Kroos
сессия может и ни при чем. Ну а на самой странице ничего не меняется, нет там скрытых полей или динамических данных? поищи причину.

Re: Что это за ссылка?

СообщениеДобавлено: 13.02.2016 (Сб) 21:58
Adam Smith
Попробовал, но ничего не получилось и это жесть конечно. Гораздо быстрее (как я и планирую) выделить отдельную виртуалочку под ХР, чтоб на ней барабанил IE.