Вызов PrimeFaces из консоли разработчика Google Chrome

cshlkws спросил: 13 июня 2018 в 09:29 в: javascript

Сначала немного фона, у меня есть доступ к сайту, где, когда я нажимаю на один день недели (что-то вроде календаря на экране для месяц), где каждый день с понедельника по пятницу назначается несколько встреч.

Тайм-аут веб-сайта после 12 минут бездействия. Поэтому я выполнил небольшой js-скрипт, который я запускаю с консоли, чтобы вызвать одну из функций прайвэмов, например:

PrimeFaces.ab({s:"forRemApp:Month",p:"forRegApp:Month",u:"forRegApp:schedule"})

Теперь я не хочу оставаться на этом сайте весь день, ожидая встреч, я хочу обновить экран и сообщить, если есть встречи в любые дни (это уже сделано). Но оттуда я должен сделать это вручную.

Это работает, и то, что это делает, обновляет scren, и когда новые встречи доступны, код позволяет мне знать, что играет звук, поэтому я могу щелкнуть ( будет загружать новый экран для этого дня в этом календаре), нажмите время, доступное в этот день, и нажмите, чтобы назначить встречу и т. д.

Все хорошо, проблема в том, что я очень любопытно об этом и хочу выйти за рамки этого, мой javascript очень простой, но я знаю, что на сайте использовался jquery (я видел что-то, ссылающееся на файл jsf, jquery и sizzlejs).

Я знаю, что бэкэнд находится в java, я установил точку останова в консоли dev, и когда я нажимаю на нее (день с назначением), всегда вызывайте функцию, которая находится в следующем файле (со всей информацией DOM в нем о том, кто я нажал, передан как параметр)

Это код, который вызывается при нажатии:

https://pastebin.com/UWVTC9CD

, в частности, функции

if (!(cc = ce.handle)) {
            cc = ce.handle = function(cl) {
                return typeof bI !== aC && (!cl || bI.event.triggered 
!== cl.type) ? bI.event.dispatch.apply(cc.elem, arguments) : undefined
}
;
cc.elem = b8
}

, и это разворачивается оттуда, вызывая несколько функций, проверив g объект, который был нажат, и т. д. и, наконец, загрузка экрана (который принадлежит календарю) для выбора времени, доступного для этого дня.

Я хочу автоматизировать этот вызов на один вызов функции от разработчика консоль, передав параметр (объект, который, я полагаю), который будет в тот день, когда я выбрал клик, но я не буду нажимать,

Мои простые вызовы кода

PrimeFaces.ab({s:"forRegApp:Month",p:"forRegApp:Month",u:"forRegApp:schedule"}) 

каждые несколько секунд и сканировать DOM для поиска доступных встреч (число) и воспроизводить звук, чтобы сообщить мне.

Любые советы о том, как вызвать это из консоли javascript, чтобы я мог перейти к следующий экран автоматически и сразу выберите назначение?


1 ответ

Есть решение
Melloware ответил: 15 июня 2018 в 10:55

ОК. Я думаю, у меня есть решение для вас, чтобы помочь вам.

1.Найдите этот URL-адрес: https://www.primefaces.org/showcase/ui/data/schedule.xhtml

2.Откройте консоль JavaScript JavaScript.

3. Введите следующее и нажмите клавишу ВВОД, чтобы перейти к следующему дню:

PrimeFaces.widgets.myschedule.jqc.fullCalendar('next');

4. Введите следующее и нажмите ENTER, чтобы ввести экран "день", который, я думаю, вы хотите:

PrimeFaces.widgets.myschedule.jqc.fullCalendar('changeView', 'agendaDay');

Это должно перейти к нужному виду. Теперь, чтобы выяснить на вашей странице, что имя виджета, вы можете просто ввести "PrimeFaces.widgets". и пусть Chrome предоставит вам список виджетов. Это может быть некоторая пробная ошибка для вас, чтобы выяснить, какой виджет - это расписание, которое может называться чем-то вроде "jidt687" или что-то уникальное неявное.

Расписание PrimeFaces основано на FullCalendar.js, поэтому, если вы хотите для просмотра любых других вызовов вы можете сделать документы: https://fullcalendar.io/docs/date-navigation

Это покажет, что вы можете делать "сегодня", "следующий", "предыдущий", ,"previousYear" и т. д. и т. д.

cshlkws ответил: 15 июня 2018 в 09:32
Прежде всего, вы очень удивительны, спасибо, что поделились своими знаниями со мной. Очень ценится. У меня есть несколько вопросов. Перед полным календарем месяца (теперь нет назначений, но я тестирую) Если я вызываю: PrimeFaces.widgets.myschedule.jqc.fullCalendar ('changeView', 'AgendaDay'); Он перейдет к графику дня, но не сделает HTTP-запрос.
cshlkws ответил: 15 июня 2018 в 09:33
затем я попытался вызвать PrimeFaces.widgets.myschedule.jqc.fullCalendar ('next'); Здесь я также не видел HTTP-запрос, как из сетевого журнала в консоль dev, так и из tcpdump (1), none. Но, если я вручную нажму на День сверху (загрузив экран "День"), то следующий вызов: PrimeFaces.widgets.myschedule.jqc.fullCalendar ("следующий"); Работает!. Это делает запрос HTTP, как ожидалось. И (исправьте меня, если я ошибаюсь, что приведет к загрузке данных с веб-сайта с назначением, когда они будут готовы.
cshlkws ответил: 15 июня 2018 в 09:34
Теперь, мой вопрос: как я могу это исправить? Я не возражаю, чтобы нажать кнопку "День", а затем поставить скрипт, но если я смогу сделать это автоматически, это будет очень удивительно. Другой вопрос: как я могу (помните, что мой javascript очень простой) знает, успешно ли вызов "следующий" или нет? от возвращаемого значения? Я спрашиваю, потому что этот сайт настолько перегружен, что при выполнении назначений метод POST терпит неудачу, я видел это в моей последней встрече, и у них не получается 20 o 22 попытки.
cshlkws ответил: 15 июня 2018 в 09:34
Мой другой вопрос: в этой сетке, панели (на день) и т. Д. У них есть время того дня, когда они назначают встречи в виде ссылок (например: 9:00 - 3 встречи доступны) или что-то в этом роде, когда один клик по ссылке вы получаете всплывающее окно, а затем вы помещаете капчу для подтверждения назначения, как я могу получить "список" встреч с этого дня? Если возможно, как я могу получить еще больше, обнаружив доступную встречу и запустив всплывающее окно (эмулируя щелчок на нем) для установки captcha? Опять же, большое спасибо за вашу помощь.
Melloware ответил: 16 июня 2018 в 09:57
Мне нужно было бы продолжать общаться с ним, чтобы увидеть, я просто хотел дать вам инструменты для работы с виджетами PrimeFaces и как их можно манипулировать!

Дополнительное видео по вопросу: Вызов PrimeFaces из консоли разработчика Google Chrome

jQuery Integration with JSF 2 Libraries

How to use Jquery in a JSF Project Part I

Maratona JSF - Aula 43: Ajax pt 01, Introdução, execute e render