问题标签 [javafx-webengine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2671 浏览

java - JavaFX WebEngine 卡在“运行”状态

在 JavaFX2 中使用WebEngine时,我注意到它有时会卡住。假设我正在制作一个爬虫,它只是在页面上找到超链接,然后递归地访问它们以执行相同的操作,跟踪我们访问过哪些链接以及哪些链接已经在边界上。在运行我的代码时,执行有时会在任意时刻挂起。

我以监听器的形式向我的项目添加了一些调试代码,workDonePropertyexceptionProperty打印了loadWorker's 的每个转换stateProperty。然后我注意到有时引擎会停止 URL 的中间加载(状态被卡住RUNNING并且没有更多workDone更新)。我假设这是因为超时或其他原因,但我已经停止等待 5 分钟后是否确实超时。

exceptionProperty似乎没有产生任何事件,也没有过渡webEngineFAILEDor CANCELLED,它只是停止。我想知道这是否可能是图书馆中的竞争条件,或者我可能缺少一些东西......有没有人遇到过这个知道如何解决这个问题的人?对于我的应用程序来说,引擎不只是随机停止是非常重要的......

编辑:从我的控制台添加输出:

0 投票
2 回答
2703 浏览

gwt - 将 Java 数组传递给 JavaScript(通过 JSNI)并返回给 Java 会导致空值

场景:我有一个在 JavaFX WebView/WebEngine 中运行的 GWT Web 应用程序。我能够毫无问题地将字符串从 GWT 传递到 JavaScript 到 JavaFX。

问题:当以相同方式传递自定义对象数组(如 Data[])时,JavaFX 端的结果为空。

数据外观示例:

以下是将数据发送到 JavaScript 的代码:

我已经在调试器中验证了传入的 Java 对象填充了数据并且看起来不错。

现在在 JavaFX 方面,我有以下代码将 javaInterface 添加到页面:

我知道这行得通,因为我将它用于仅传递字符串的其他方法,并且它们工作得很好。

请注意,Data 对象在双方都已定义并可访问。

从 GWT 文档:

我根本没有在 JavaScript 中接触它,我只是从 Java->JavaScript->Java 传递它,但最后一步似乎是失败的。

在过去的几个小时里,我一直在搜索 Stack Overflow、Google、GWT 组、gwtproject.org 等。但大多数示例只显示了一个正在传递的参数,几乎没有一个显示正在使用 Java 数组。

我宁愿只是传递对象,而不是从 JSON 中转到->,但出于绝望,我确实尝试过。我尝试使用 GSON,但它在 GWT 客户端上不起作用。我尝试使用 GWT AutoBean 框架,但我的 Data 对象不是有效的 bean(我认为是因为没有默认构造函数),此时我无法更改它。

我没有使用任何 Long 或 long 值。

我见过这样的例子:

但据我所知,这只是为了从 JavaScript 到 GWT over JSNI。我正试图走另一条路。对于多个参数,我也找不到这样的示例。

我敢肯定,这里只是缺少一个小调整,但我还没有弄清楚。如果您看到我在这里遗漏的东西,请告诉我。

0 投票
1 回答
604 浏览

java - 为什么我不能将 Ace Editor 嵌入到 WebView 中?

我正在尝试在 JavaFX 2.2 中制作一个简单的编辑器。我下载Ace Editor了存储库并创建了一个测试页面,双击时可以正常工作。

但是,当我尝试将其嵌入到WebView.

SSCCE

有人可以告诉我有什么问题吗?

0 投票
1 回答
1416 浏览

css - 如何在 JavaFX WebView 中保留一个 div?

我正在努力在我的应用程序中获得一致的对齐,该应用程序是用 GWT 编写的,并通过基于 WebKit 的 JavaFX 2.2 WebView (Java 7u40) 查看。

我遇到的问题是 JavaFX 中的 CSS 布局属性似乎存在问题/缺乏支持。文档(http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html)说支持 CSS 2.1(包括填充、填充左等)。

文档还声明“ JavaFX CSS 不支持 CSS 布局属性,例如浮动、位置、溢出和宽度。但是,某些 JavaFX 场景图对象支持 CSS 填充和边距属性。

这是我在 Chrome 中运行良好的内容:

但这对 WebView 完全没有影响。

以下是我尝试过的其他规则,它们在 Chrome 中都可以正常工作,但在 JavaFX WebView 中无法执行任何操作:

DOM 的结构如下:

如何<div>让它在 JavaFX WebView 中正确对齐?

0 投票
2 回答
1873 浏览

java - Java - 如何在本地设备上的资源加载图像中使用 html

我正在使用 WebEngine(WebView) 在资源中加载 html 文件

并且 aaaaa.html 包含图片标签

当我通过 NetBean 运行项目时,将显示图像。但是当我通过 NetBean 进行“清除和构建”时,之后我在 dist 文件夹中运行 jar 文件,然后图像不显示。

我想显示图像存储在本地的 html 中。

0 投票
2 回答
2668 浏览

jquery - JavaFX WebEngine 等待 ajax 完成

我正在 JavaFX 中开发一个数据挖掘应用程序,它依赖于 WebView(因此也依赖于 WebEngine)。挖掘分两步进行:首先,用户使用 UI 导航到 WebView 中的网站,以配置可以搜索感兴趣数据的位置。其次,使用定期运行的后台任务,WebEngine 加载相同的文档并尝试从加载的文档中提取数据。

这适用于大多数情况,但最近我在使用 AJAX 呈现内容的页面上遇到了一些问题。要检查 WebEngine 是否已加载文档,我会听loadWorker's stateProperty. 如果状态转换为成功,我知道文档已加载(连同可能在 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 调用并在之后通知我的方法。

0 投票
1 回答
1752 浏览

java - JavaFX 检测到来自 WebEngine 的 404 响应

使用 JavaFx WebEngine,我如何检测是否存在 404 page not found 错误。我已经搜索但找不到任何东西。有任何想法吗?或者有可能吗?

0 投票
1 回答
308 浏览

javafx-webengine - 如何使用 JavaFX 加载无效的认证网页。

您好我正在尝试在 JAVAFX 的 webView 面板中加载网页。我可以加载认证有效的网页,如谷歌、雅虎。但无法加载无效的认证站点。

请建议如何将认证添加到我的网站。

谢谢。

0 投票
2 回答
968 浏览

java - 为什么提示“要查看此页面上的内容,请单击此处安装 JAVA”?

我们正在开发一个 JavaFX 应用程序。我想通过 Web 站点启动此应用程序,但显示消息(“要查看此页面上的内容,请单击此处安装 Java”)。所以,我无法启动这个应用程序。我应该怎么办??

你能给我们任何提示吗?

仅供参考,我们可以使用 NetBeans(调试模式和正常模式)启动应用程序。当然,我们检查了 Java 是否已安装。

(应用开发环境) 操作系统:Windows7 64bit ver6.1

浏览器:IE11

JDK:JDK1.7.0_40

语言:JavaFX2.2.40

工具:NetBeans IDE7.3.1

0 投票
1 回答
1162 浏览

java - JavaFX WebView:Java 不可访问

我正在尝试将网页加载到我的应用程序中。我可以加载页面,但是,我尝试加载的网站需要 Java 才能运行,并且 WebView 似乎无法在我的 MacBook 上找到它。请参阅下面的剥离代码:

现在我的问题是:有解决方法吗?任何帮助深表感谢 :)