Javascript 从Google Chrome开发者控制台调用PrimeFaces

Javascript 从Google Chrome开发者控制台调用PrimeFaces,javascript,jquery,jsf,primefaces,Javascript,Jquery,Jsf,Primefaces,首先是一点背景知识,我可以访问一个网站,当我点击一周中的一天(就像屏幕上的日历一样)时,从周一到周五,每天都有很多约会 网站在大约12分钟不活动后超时。因此,我实现了一个小js脚本,从控制台运行该脚本来调用primefaces函数之一,如下所示: PrimeFaces.ab({s:"forRemApp:Month",p:"forRegApp:Month",u:"forRegApp:schedule"}) 现在,我不想整天呆在网站上等待约会,我想刷新屏幕,让我知道在任何一天是否有约会(这已经完成

首先是一点背景知识,我可以访问一个网站,当我点击一周中的一天(就像屏幕上的日历一样)时,从周一到周五,每天都有很多约会

网站在大约12分钟不活动后超时。因此,我实现了一个小js脚本,从控制台运行该脚本来调用primefaces函数之一,如下所示:

PrimeFaces.ab({s:"forRemApp:Month",p:"forRegApp:Month",u:"forRegApp:schedule"})
现在,我不想整天呆在网站上等待约会,我想刷新屏幕,让我知道在任何一天是否有约会(这已经完成)。但从那以后,我必须手动操作

这是可行的,它的作用是刷新scren,当新的约会可用时,代码会让我知道播放声音,这样我就可以单击(将在该日历中加载当天的新屏幕),单击当天可用的时间,然后单击进行约会,等等

到目前为止,一切都很好,问题是我对此非常好奇,并想超越这一点,我的javascript非常基础,但我知道该网站使用了jquery(我看到了一些涉及jsf文件、jquery和sizzlejs的内容)

我知道后端是java的,我在开发控制台中设置了一个断点,当我点击它(一天约会)时,总是调用下面文件中的函数(其中包含关于我点击谁的所有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
}
它从那里展开,调用多个函数,检查单击的对象,等等,最后加载屏幕(属于日历)以选择当天可用的时间

我想通过传递我选择单击但不单击的那天的参数(我想是对象),自动从开发人员控制台调用单个函数

我的代码是简单的调用

PrimeFaces.ab({s:"forRegApp:Month",p:"forRegApp:Month",u:"forRegApp:schedule"}) 
每隔几秒钟,扫描DOM以搜索可用的约会(一个号码),并播放声音让我知道


有没有关于如何从javascript控制台调用它的建议,以便我可以自动转到下一个屏幕并立即选择约会?

好的,我想我有一个解决方案可以帮助您

1.导航到此URL:

2.打开Chrome JavaScript控制台

3.键入以下内容并按ENTER键前进到第二天:

PrimeFaces.widgets.myschedule.jqc.fullCalendar('next');
4.键入以下内容,然后按ENTER键进入我认为您需要的“day”显示:

PrimeFaces.widgets.myschedule.jqc.fullCalendar('changeView', 'agendaDay');
这会将您导航到所需的视图。现在,要在页面上弄清楚小部件的名称,只需键入“PrimeFaces.widgets”,然后让Chrome为您提供一个小部件列表。对于您来说,找出哪个小部件是日程安排可能是一个尝试性的错误,它可能被命名为“jidt687”之类的名称,或者是唯一模糊的名称

PrimeFaces时间表基于FullCalendar.js,因此如果您想查看任何其他调用,您可以在此处查看文档:


这将显示您可以执行“今天”、“下一个”、“上一个”、“上一年”等操作。

当您说“日历”时,您是指此处的PrimeFaces计划组件:。如果是这样的话,我认为这应该是可能的,我也许可以帮助你找出如何“点击”一天。是非常相似的,但不是外观,内部非常相似,在我看来,他们使用的是不同的皮肤,或者只是一个稍旧的版本,在你发给我的那封信中,我在源代码中看到了相同的“fc day ui widget content”和类似的内容,而且这封信的月、日、周按钮也相同。有什么想法吗?我的意思是,我为“点击”设置了一个断点,每当我点击它时,我都会得到相同的文件(我在帖子中输入的pastebin url),但我看不到任何线索,如何通过调用函数或其他东西进入下一个屏幕,下一个屏幕有预约选择一个细节是,在我的情况下,点击“Day”,我会得到一个完全相同的屏幕(不是颜色,而是结构)我想实现的是检查预约,当预约可用时,DOM扫描会告诉我,这是我的问题,我需要知道如何编写一个调用,在单击时通过调用其中的“right”函数模拟该函数,并在小时结束时转到下一个屏幕s是(当你点击演示中的“Day”时,屏幕非常相似)。请看下面的我的答案。这会让你更进一步。首先,你非常了不起,感谢你与我分享你的知识。非常感谢。我有一些问题。面对这个月的完整日历(现在没有约会,但我正在测试)如果我调用:PrimeFaces.widgets.myschedule.jqc.fullCalendar('changeView','agendaDay');它将转到日程安排,但不会发出http请求。然后我尝试调用PrimeFaces.widgets.myschedule.jqc.fullCalendar('next');在这里,我也没有看到来自开发控制台中的网络日志和来自tcpdump的http请求(1),无。但是,如果我在顶部手动单击Day(加载Day屏幕),则以下对的调用:PrimeFaces.widgets.myschedule.jqc.fullCalendar('next');有效!。这将按预期发出http请求。和(如果我错了,请纠正我的错误,这将在约会准备就绪时触发从网站加载数据。现在,我的问题是,我如何解决这个问题?我不介意单击“Day”按钮,然后放入脚本,但如果我能自动执行,那将非常令人惊讶。另一个问题:我怎么可以(记住,我的javascript是非常基本的)从返回值知道对“下一步”的调用是否成功?我问这个问题是因为这个网站变得如此拥挤,以至于在预约时POST方法失败了很多次,我在上次预约中看到,他们失败了20到22次。我的另一个问题:在那个网格中,面板(当天)等,他们有当天预约的时间