New version is available
JxBrowser 7 的支持将于 2025 年 10 月终止,届时将不再提供 Chromium 更新和关键修复。 我们建议您升级至 JxBrowser 8,以享受新功能和改进带来的更多优势。 如果您有任何疑问或在升级过程中需要帮助,欢迎随时联系我们
List icon 目录

发布日期 2020年7月16日

JxBrowser 7.9

我们很高兴地宣布全新的 JxBrowser 7.9 发布啦,此版本带来了多项新功能以及大量修复和改进!

禁用 PDF 查看器

此版本的 JxBrowser 允许禁用内置的 Chromium PDF 查看器。如果您希望下载 PDF 文档而不是在 PDF 查看器中显示它们,可以禁用 PDF 查看器。以下示例演示了如何操作:

engine.plugins().settings().disablePdfViewer();

清除 HTTP 缓存

现在,您可以标记存储在磁盘和内存中的所有 HTTP 缓存条目以供删除。以下示例展示了如何清除所有 HTTP 缓存条目并等待这些条目被标记为待删除:

httpCache.clear().join();

重要HttpCache.clearDiskCache(Runnable) 方法已被标记为 @deprecated,并将在未来的某个版本中移除。请改用 HttpCache.clear() 方法。

滚动历史导航

JxBrowser 现在允许在触摸屏设备上通过左/右滑动来后退/前进导航。默认情况下,滚动导航是禁用的。您可以按如下方式启用它:

browser.settings().enableOverscrollHistoryNavigation();

改进

  • 在导航到 localhost:<port> 的 DevTools URL 时,从可检查页面列表中移除了 about:blank 网页。
  • 移除了 macOS 上 BrowserView 组件的最小尺寸限制,并允许将该组件调整至可能的最小尺寸。
  • 现在,在 JavaFX 应用程序中不再需要像以前那样在不同线程中关闭 Engine。因此,以下方法不再需要
    private static void close(Engine engine) {
        if (isMac()) {
            // 在 macOS 上,必须在 UI 线程中关闭 engine。
            engine.close();
        } else {
            // 在 Windows 和 Linux 上,必须在非 UI 线程中关闭 engine。
            new Thread(engine::close).start();
        }
    }
    

已修复的问题

  • 当点击带有 rel='noopener noreferrer' 属性的链接时,OpenPopupCallback 从未被调用,因此弹出窗口从未显示。
  • 当将 JavaFX BrowserView 嵌入 javafx.scene.control.Alert 对话框中时,出现 java.lang.NullPointerException 错误。
  • 如果在数据拖放前隐藏 BrowserView,Swing 拖放事件将被阻止。
  • 当下载多个文件时显示请求权限对话框。
  • 在 Linux 的硬件加速渲染模式下,将 Swing BrowserView 停靠/取消停靠到 NetBeans 11 窗口时,Chromium GPU 会崩溃。
  • 当将 Swing BrowserView 嵌入到 JTabbedPane 并调整选项卡面板大小时,BrowserView 的大小调整不正确。
  • 关闭包含至少一个嵌入式 BrowserView 的 Java 窗口会导致在 Windows 上离屏渲染模式下的所有 Browser 实例意外关闭。
  • 在 Linux 系统的离屏渲染模式下调用 Browser.bitmap() 会导致程序冻结。
  • 在 Windows 上,在禁用 GPU 并启用透明背景的离屏渲染模式下,BrowserView 组件会短时间显示带有最小化、最大化和关闭按钮的窗口标题。
  • 使用 InputElement.file(String...) 方法设置文件时,网页表单无法提交。
  • 通过 InputElement.file(String...) 方法设置文件时,不会触发 DOM change 事件。
  • IFRAME 内的导航因 X-Frame-Options: sameorigin HTTP 标头而失败时,不会触发带有 BLOCKED_BY_RESPONSE 错误的 FrameLoadFailed 事件。
  • 在 Windows 7 和 Windows Server 2008 R2 的离屏渲染模式下,第一个加载的网页无法渲染。
  • 在离屏渲染模式下,如果网页在对应的 Browser 实例中已经完全加载后,JavaFX 的 BrowserView 才变为可见,那么首次加载的网页将不会在 BrowserView 中显示渲染内容。
  • 当 SWT BrowserView 对应的 Browser 实例已经关闭时,失去焦点会导致 java.lang.IllegalStateException 错误。
  • 在 Windows 上的硬件加速渲染模式下显示多个弹出窗口时会导致线程死锁。
  • UrlRequest 在完成和销毁时没有 ID。
  • 在导航历史列表中进行前进/后退操作时不会触发 TitleChanged 事件。
  • 在 Linux 的全屏模式和硬件加速渲染模式下出现单像素的白线。
  • 在离屏渲染模式下,当在文本字段中按 Enter 键时,网页上的 Angular 无法接收所需的 DOM 事件。
  • 在 Windows 的离屏渲染模式下启用透明背景时,由于库没有刷新 HTML 画布,导致 JavaScript 动画无法正常运行。
  • 在 macOS 上,当连接到远程调试 URL 时,触摸板点击会导致 Engine 崩溃。
  • 在 Windows 的硬件加速渲染模式下无法显示工具提示。
  • 异步销毁 SWT BrowserView 时出现 IllegalStateException 错误。
  • 在 macOS 上,当鼠标指针悬停在 JavaFX BrowserView 上时,按下 Cmd+Q 会出现 IllegalStateException 错误。
  • 在销毁另一个 SWT 组件的过程中关闭 Browser 时,会出现线程死锁。
  • 在 macOS 上使用 JavaFX BrowserView 时,Command 键不会传递到网页。

下载 JxBrowser 7.9

请提供您的电子邮箱地址,我们会尽快将下载说明发送给您。

发送...
EmailBox 请检查您的收件箱。

我们无法发送电子邮件。请使用直接链接下载JxBrowser。

如果您已经是我们的注册客户,您无需任何操作,即可轻松享受此次更新。

如果您希望深入了解并体验我们的产品,您可以申请评估许可证。

获取免费 30 天体验