Tag: javafx webengine

JavaFX WebEngine等待ajax完成

我正在JavaFX中开发一个依赖于WebView(以及WebEngine)的数据挖掘应用程序。 挖掘分两步进行:首先,用户使用UI导航到WebView中的网站,以配置可以搜索有趣数据的位置。 其次,使用定期运行的后台任务,WebEngine加载相同的文档并尝试从加载的文档中提取数据。 这适用于大多数情况,但最近我遇到了一些使用AJAX呈现内容的页面的麻烦。 要检查WebEngine是否已加载文档,我会听取loadWorker的stateProperty 。 如果状态转换为succesfull,我知道文档已加载(与可能在document.ready()上运行的任何javascript或等效文件一起)。 这是因为如果我没弄错的话,javascript会在JavaFX线程上执行(来源: https : //blogs.oracle.com/javafx/entry/communicating_between_javascript_and_javafx )。 但是,如果启动了AJAX调用,则javascript执行完成,引擎让我知道文档已准备就绪,但显然不是因为优秀的AJAX调用内容可能仍然会更改。 有没有办法解决这个问题,注入一个钩子,以便在AJAX调用完成后通知我? 我已经尝试在$.ajaxSetup()安装一个默认的完整处理程序,但这很狡猾,因为如果ajax调用覆盖整个处理程序,则不会调用默认值。 另外,我只能在文档首次加载后注入(然后一些AJAX调用可能已经在运行)。 我已经使用upcall测试了这个注入,它适用于在命令上启动的AJAX调用(在注入默认处理程序之后),它们不提供自己的完整处理程序。 我正在寻找两件事:首先:挂钩到AJAX调用的完成处理程序的通用方法,其次:等待WebEngine完成所有AJAX调用并在事后通知我的方法。