问题标签 [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 投票
1 回答
635 浏览

javascript - JavaFX WebEngine 和 Pushbullet 身份验证

我正在开发一个小型 JavaFX 应用程序,该应用程序旨在打开 Pushbullet 身份验证网页以获得 OAuth 访问令牌。用 JavaFX 编写它非常简单。但是,当我填写表格并使用 Google 帐户进行验证时,身份验证失败。由于当我在本机 Chrome 浏览器中打开 URL 时同样有效,我认为问题与 JavaFX WebEngine 实现的有限能力有关,但我无法弄清楚它是什么。

下面是我使用的一段代码:

我注意到该代码可用于成功获取 Twitter 或 Slack 的 Oauth 访问令牌,但不能使用 Pushbullet 身份验证机制。提交表单时,我收到错误登录您的帐户时出错:无法连接到服务器

Pushbullet 身份验证错误

大约两周前,我向 Pushbullet 团队发送了一封电子邮件,但没有得到答复。同时,我尝试使用 firebug 来了解可能是什么问题,但没有成功:

在此处输入图像描述

欢迎任何想法,评论等。

0 投票
0 回答
979 浏览

java - JavaFX WebView 背景透明度和 WebEngine 打印问题

我在一个项目中,一个收入管理系统,由于某些原因,它需要在 WebView 上显示并打印一些报告,而设计概念要求 WebView 透明。我能够在这里解决 WebView 透明问题:JavaFX 中 WebView 中的透明背景归功于Harry Hur1,因为我无法通过 FX CSS 实现这一点,而且我还能够在 WebView 上显示我的报告,如下所示:

代码:

结果 透明 WebView,内容加载到它上面

…但问题是当我尝试打印时,它会在纸上打印一个深色背景矩形图像,我想纸上的黑色部分是包含报告的 html 页面。下面是显示:

打印代码:

打印输出: 因为我是新来的,并且没有达到 10 个声誉,所以我无法提供打印输出图像链接,但无论如何,帖子都解释了它。

但是,当我尝试注释使 WebView 透明的代码时,这将使 WebView 保留其默认背景颜色(白色)并将报告文本颜色更改为黑色,它通常会打印到纸上,但实际上不是用 css 呈现的方式。我的样式使用“Segoe UI Light”和“Segoe UI Bold”渲染文本字体,但它以“Times New Roman”字体和相同的字体大小打印出整个内容:下面是显示:

结果: 加载了黑色文本内容的白色背景 WebView

打印输出: 因为我是新来的,并且没有达到 10 个声誉,所以我无法提供打印输出图像链接,但无论如何,帖子都解释了它。

问题是:

  1. 请问有没有一种方法可以让我的 WebView 透明并打印 WebEngine 而没有背景渲染打印输出,就像它使用 css 的样式一样?如果有人能在这里帮助我,我将不胜感激,因为我在 JavaFX 方面只有 8 个月的经验。

  2. 仍然在打印时,还要求某些报表在(TableView)上以常规方式显示。我已经应用了一些在线帮助(关于如何打印节点),但我认为它没有为我提供解决问题的确切方法。请有人帮我写一些代码,这些代码可以帮助我打印一个 TableView,即使它溢出,我也可以打印整个数据,即使是那些像 Java Swing Table 一样不在视图中的数据?

0 投票
1 回答
788 浏览

javascript - 执行 javascript 并返回响应 (JavaFX/Swing)

我需要从 java 运行一个 javascript 函数并将响应保存在一个变量中。我写了以下代码,但它不起作用:

我使用“WebView”是因为我的 javascript 代码使用了“window”、“document”和库等函数,因为“ScriptEngineManage”在我的情况下不起作用。

我怎么解决这个问题?我的代码有效,但在executeScript结束之前返回“响应”。

0 投票
0 回答
500 浏览

javafx - 从 JavaFX WebEngine 读取 javascript 文件

我正在使用 JavaFX(来自 jdk 1.7)来显示一个有角度的网页:

在这个 Angular 应用程序中,我使用 javascript FileReader 加载文件的 base64 内容 (FileReader.readAsDataURL)。

问题是 JavaFX 的 WebEngine 不支持 FileReader(尽管有些人声称支持):

我想要的功能:

  • 向 REST-WS 发送消息
  • 此邮件可能包含多个附件
  • 在发送邮件之前不要将附件存储在服务器上
  • 我不需要预览附件(只是名称)

注意:JavaFX 的 WebEngine 不支持多文件输入(所以不工作!)

有没有其他方法可以实现这一目标?

0 投票
1 回答
1450 浏览

qt - QtWebEngine 演示应用程序崩溃

当我运行 QtWebEngine 'fancyBrowser' 演示应用程序或我自己的 QtWebEngine 应用程序时,在运行时出现以下错误

NOUVEAU:内核拒绝PushBuf:没有这样的文件或目录Nouveau:CH0:KREC 0 PUSHES 0 BUFS 2 REMOCS 0 NOUVEAF:CH0:CH0:BUF 000000000000000002 00000004 00000004 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000来

我在哪里做错了?

0 投票
1 回答
4619 浏览

qt - 强制 QWebEngine 使用软件渲染

我正在使用 QWebEngine 来显示一些网页。不幸的是,它在内部使用 OpenGL - 这会导致某些图形适配器崩溃(可以很容易地将驱动程序 DLL 视为崩溃的原因)。作为第二个警告,无法通过 try-catch-block 捕获此崩溃。

所以我的问题是:如何强制 QWebEngine 仅使用软件渲染而不使用 OpenGL?

谢谢!

0 投票
0 回答
784 浏览

javafx - 构建一些大字符串后 JavaFX WebKit 崩溃

单击 [Do it!] 两次后,此代码在我的机器中产生崩溃:

崩溃报告:

该应用程序因 jdk1.7.0_71 而崩溃。我也尝试过 jre1.8.0_74,结果相同。

我已经能够使用 Google Chrome 加载相同的 HTML,我可以多次单击该按钮而不会出现任何问题。如果我将字符串的大小从 20MB 增加到 40MB,Google Chrome 会在第一次点击时崩溃。Chrome 似乎只有 20MB 会在必要时释放内存,而且它永远不会崩溃。

我的目标是在调用一些返回大小从 1KB 到 32MB 的字符串的函数后避免 JavaFX 应用程序中的随机崩溃。似乎 WebEngine 中正在积累一些东西,即使是中等大小的字符串,应用程序也会在多次用户交互后崩溃。

任何建议将不胜感激。提前致谢!

0 投票
1 回答
307 浏览

java - JavaFX - 访问 WebEngine 的 DOM 模型

我正在使用一个监听器来监听网络引擎的状态,它工作正常。此时也填写了文档,因为达到了 SUCCEEDED 状态。

状态监听器:

}

我的问题是,我在切换按钮上使用了另一个侦听器,我在较早的时间(在另一个视图的构造函数中)通过方法 selectToggle() 手动触发了该按钮,其中 Web 引擎的文档模型尚未设置状态监听器,因为在 JavaFX 阶段弹出之前未达到状态 SUCCEED。

因此,现在我需要一个解决方案,即如何在呈现 UI 时在 JavaFX Stage 上进行监听。因为此时状态监听器会做出反应,然后我可以调用 setInitialState() 方法并使用 Web 引擎的文档模型。

选择ToggleButton的代码:

0 投票
0 回答
131 浏览

javascript - 在第二个线程中在 JavaFX WebEngine 上执行的 Javascript 代码

我有个问题。是否可以在不使用 Platform.runlater() 的情况下在第二个线程中的 WebEngine 上执行 javascript 代码?在主线程中执行 javascript 代码会冻结我的应用程序,所以我想在第二个线程中运行它,但它看起来像 JavaFX 中的其他控件一样工作 - 它必须在主线程中。它有任何选择绕过它吗?问候

0 投票
1 回答
265 浏览

javafx - JavaFX、webEngine、webView。动态更改标记的 src (在刚加载的文档中)

首先对于桌面(不是Android)应用程序。

我想将放置在加载的 HTML 文档中的图像源替换为本地图像源(从我的硬盘驱动器)。我使用 JavaFX 组件显示加载的页面:webEngine->webView->Scene->Stage。我做了什么?

我使用 webEngine.load(" http:// any_page ") 加载了一个页面。之后,我获得了一个图像对象(在 Java 端)并将其转换为 HTMLImageElementImpl。这是加载页面上存在的对象的表示。我将 src 属性设置如下:

htmlImageElementImpl.setSrc("file:/local_path_to_my_image");

...并预计新图像将出现在加载的页面上。不幸的是,它不起作用。以前的图像(最初在加载的页面上)已经消失并且没有出现新的图像(有一个白色区域)。我确定该图像在那里(当我单击它的右键时,可以选择“在新窗口中打开图像”选项并查看它)。它出现。我认为它需要刷新组件才能显示它。

当我将此标签的 src 替换为 Internet 中存在的图像时,有趣的是,如下所示:

htmlImageElementImpl.setSrc(" http://_file_existing_in_the_internet//image.jpg ");

...一切都很好,替换的图像会即时出现。

我花了两天时间,我还没有解决这个问题。所以我决定问你。

此致

凯斯