List icon 目录

发布日期 2017年11月6日

JxBrowser 6.17

JxBrowser 6.17 列出了相当多的新功能和改进。

Windows 上的 Sandbox

在此版本中,我们添加了对 Windows 平台上 Chromium Sandbox(沙盒)的支持。默认情况下,Sandbox 处于禁用状态以保留与以前版本的向后兼容性。要启用 Sandbox,请在创建第一个 Browser 实例之前将 jxbrowser.chromium.sandbox 系统属性设置为 true。例如:

System.setProperty("jxbrowser.chromium.sandbox","true");
Browser browser = new Browser();

DOMFrameElement

已引入 DOMFrameElement 接口。现在,您可以将代表 IFRAME 或 FRAME HTML 元素的 DOMElement 实例转换为 DOMFrameElement,并访问给定 Frame 的 DOMDocument 实例。例如:

DOMDocument document = browser.getDocument();
DOMElement iframe = document.findElement(By.tagName("iframe"));
if (iframe instanceof DOMFrameElement) {
    DOMFrameElement frameElement = (DOMFrameElement) iframe;
    DOMDocument frameDocument = frameElement.getContentDocument();
    //...
}

改进

从此版本开始,JxBrowser 支持在将 PDF 保存为 PDF 文档时指定页范围。部分内容打印也变得可能。

我们非常重视稳定性,因此此次发布在多线程环境中销毁 Browser 实例时的稳定性得到了提升,并且在支付门户网页上提交信用卡信息时,Chromium Engine 的稳定性也得到了增强。

此版本中还有一些更便捷的改进:DefaultDialogHandler 的 Swing 实现现在遵循 Swing 的 EDT(事件调度线程)规则,并在 EDT 中禁用 UI 对话框。Windows 7 和 8/8.1 上的 debug.log 文件生成已被禁用。

已修复的问题

  • 在 Windows 平台上的重量级渲染模式下调整 BrowserView 大小时出现黑屏和闪烁问题。
  • 通过 --lang Chromium 切换器提供有效语言时抛出 IllegalArgumentException 异常。
  • 从内部 NetworkDelegate 实现抛出意外的 ConcurrentModificationException 异常。
  • 在 JavaFX 应用程序的轻量级渲染模式下,旋转功能对下拉菜单不工作。
  • 默认 Swing 打印对话框中的双面复选框不起作用。
  • 在默认的JavaFX和Swing打印对话框实现中,所选打印机名称未被应用。
  • 在轻量级渲染模式下,window.outerHeight JavaScript 代码总是返回 0。
  • 当提供相对路径时,BrowserContext 会复制 Chromium 数据、缓存和内存目录。
  • 在 Windows 平台上打印 SVG 内容时出现问题,因为 Chromium 沙盒被禁用。一些 SVG 内容需要启用 Chromium 沙盒才能正确打印。
  • 如果加载失败,Browser.invokeAndWaitFinishLoadingMainFrame() 方法会无限期地挂起。
  • 将鼠标悬停在可调整大小的数据网格标题上时,光标没有变化。

Java 9 支持

此版本不包含对 Java 9 的支持。遗憾的是,Oracle 移除了重要功能而没有提供替代方案。之前,我们可以获取 Java Swing/JavaFX Frames 的本机窗口句柄。现在,为了支持 Java 9 下的重量级渲染模式,我们需要找到一种全新的方法。

这是我们目前正在努力的方向。我们会尽最大努力尽快在 JxBrowser 中实现对 Java 9 的支持。感谢您的耐心等待。

请发送电子邮件至 customer-care@teamdev.com 以获取 JxBrowser 6.17 的下载链接。