发布日期 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 的下载链接。
关注 @JxBrowserTeam ,获取库的更新动态。
订阅我们的 RSS feed ,获取最新版本动态。