问题标签 [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 回答
1121 浏览

java - 从 webengine JavaFX 中删除特定的 cookie

我想删除 JavaFX 网络引擎生成的一些特定的仅 HTTP cookie。Chrome 浏览器允许我们删除 httponly cookie,这意味着这可以通过编程方式实现。

我可以使用删除所有 cookie

使用这个用户也从我的应用程序中注销。我希望能够删除除为我的应用程序生成的 cookie 之外的所有 cookie。或者是否可以使用 javascript 删除相同的 cookie。

0 投票
1 回答
812 浏览

java - 如何在 JavaFX 中的堆栈窗格上向兄弟姐妹发送事件

我正在努力处理 JavaFX StackPane 事件。

当我将鼠标移到我的堆栈窗格上时,会调用 MapController.onMouseMoved() ,这对我来说很清楚。

该网页具有应处理 onmousemove 事件的脚本。当我的 WebView 位于 StackPane 的顶部或放置在 WebView 上的窗格为 mouseTransparent 时,该脚本有效。当事件目标是我的 WebView 时就是这种情况。

我的问题:
当事件目标是我的窗格时,我需要处理这种情况,就像 fxml 片段中一样。我还需要将鼠标移动事件重新发送到同级 WebView 以便在网页中执行脚本。换句话说,我想从 WebView 中触发另一个鼠标事件。请根据下面的 fxml 片段提供经过验证的示例。

0 投票
1 回答
1604 浏览

webview - JavaFX WebView 在重新加载时重新创建窗口

我正在创建一个页面,该页面将在 Java 的 WebView 中打开,或者在外部浏览器中手动打开。如果页面是从 Java 加载的——我需要它来执行特定的回调,因为 Java 被用作一种后端,但是如果页面是手动加载的,它应该从其资源中加载不同的数据。所以我正在尝试注册一个可以在文档加载时调用的 JS“JavaInit”对象。HTML 看起来有点像这样:

我在这里阅读了关于在页面 onload 事件之前设置 JS 成员的问题:javaFX webview window.onload is fire before loadworker succeeds,所以我的 Java 代码如下所示:

它完全按照要求工作,但只有一次,在任何人调用“重新加载页面”之前。重新加载后引擎似乎重新创建了“窗口”对象,所有注册成员都消失了。

可以将 #setMember 放置在“状态属性”侦听器中:

但是只有在 window.onload 被触发后才会调用它,并且默认的 init 会一直被调用。这可以通过以最小延迟调用初始化代码来修复:

然后控制从 JS 处理回 Java(如果存在),然后返回到注册函数,并且程序每次都可以正常工作。

但这似乎有点不对,为了希望Java成功注册所有成员而创建init延迟。那么有人知道实现这种功能的任何“更合适”的方法吗?是否有可能在生产中需要更多的时间,并且 JS 可以在成员注册之前调用延迟函数?或者是否有任何保证 WebEngine 将持续处理 Java 事件和 JS 执行?

谢谢!

0 投票
1 回答
116 浏览

html - maxlength 属性不适用于 javafx webview

我正在使用 Struts2 开发应用程序。

它在 Chrome/IE 等中运行良好。在JavaFX webview上,该maxlength属性不会将用户输入限制为指定的数量。

示例代码:

我尝试将用户代理更改为以下内容:

  • Mozilla/5.0
  • AppleWebKit/537.44
  • JavaFX/8.0
  • Safari/537.44

但这对他们中的任何一个都不起作用。

0 投票
3 回答
2915 浏览

java - JavaFX - 如何创建(不可见)WebView 的快照/屏幕截图

我想从 JavaFX(8) 中的 WebView 创建快照/屏幕截图/图像。
此 WebView 不需要可见(在我的情况下)。

我的问题:当 WebView不可见(或未添加到任何可见容器)
时 ,是否可以(以任何方式)从 WebView 创建屏幕截图/图像?

请参阅我的示例代码,当 WebView(或其父 ScrollPane)为visible=false时,
屏幕截图将不起作用(分别为 emtpy/blank)。

示例代码:

0 投票
0 回答
631 浏览

java - 从 javafx webengine 注入 html 代码

在被 javafx webengine 加载后试图添加到 html 页面的内容。

我最初尝试使用此方法附加但失败了:

我也在下面尝试了第二个。javascript函数包含在html页面上,但在执行脚本时遇到错误:

方法3也遇到同样的错误

executejQuery()这里

要注入的字符串是:

有什么方法可以实现。

0 投票
2 回答
1078 浏览

javascript - 某些网页无法在 JavaFX webview/webengine 中正确加载

我在 JavaFX webview 中正确加载某些网页时遇到问题,即少数 javascript 组件无法正常工作。例如,在此网页上登录的 javascript 验证在 JavaFX webview 中不起作用。

启用了 web 引擎的 javascriptwebEngine.setJavaScriptEnabled(true); 我仍然面临这个问题。JavaFX webview/webengine 有什么错误吗?我在 IE8、IE9 最新版本的 Chrome 和 Firefox 中测试了相同的页面。它工作正常。

0 投票
1 回答
453 浏览

javafx-2 - 使用 Javascript 回调方法更改 JavaFX 标签

这个问题可能被认为是这个问题的简单扩展有一个带有标签和 WebView 的简单应用程序。WebView 包含一个小矩形,其 onclick 应调用 JavaFX 中的方法并更改标签的文本。

以下是我的 FXML 文件

我的 FXMLController 类是

连接器类是

在上面的连接器类中,如何获取 FXMLController 类的处理程序以便可以访问 setLabelText。

从问题的答案中我可以理解 FXMLDocumentController 可以作为参数传递,但是当我通过 javascript 回调访问控制器时,我不确定如何访问它。

0 投票
1 回答
2644 浏览

javascript - 如何从 javafx 中的 javascript 捕获返回值?

我正在我的 JavaFX 应用程序的 web 视图中执行 javascript 代码。每当单击鼠标时,我都需要让它重复执行,并将元素详细信息放入 java 变量中。我正在使用下面的代码并使用 Firebug Lite。在 Firebug 控制台中,需要的项目正在打印。但我希望它返回到 java 应用程序。

它在页面加载时执行,但不是在每次鼠标单击后执行。请建议我如何修改它。

0 投票
0 回答
1286 浏览

java - JAVAFX WebView / WebEngine 如何启用 Cookies?

我不知道如何在 JAVAFX 中的 WebView / WebEngine 上启用 cookie。我发现这个Setting a cookie using JavaFX's WebEngine/WebView,但它不起作用或者我不明白如何使用它。

如何在我的 JAVAFX 浏览器上为我的 PHP 会话启用 cookie?可能吗?