在 JxBrowser 中访问 Canvas 时的跨域限制

Posted

技术标签:

【中文标题】在 JxBrowser 中访问 Canvas 时的跨域限制【英文标题】:Cross Origin restriction in accessing Canvas in JxBrowser 【发布时间】:2018-01-08 00:06:09 【问题描述】:

我下载了 JxBrowser,因为我想在我用 Java Swing 为学校学生开发的电子评估应用程序中实现它。然而,我面临一个问题。我拥有的控件之一是 html Canvas,通过它我允许学生绘制每隔几秒自动保存的图表(我为此使用 wpaint.js)。之前使用 Java FXBrowser 时,我能够方便地从画布中提取图像数据,但是,自从我使用 JxBrowser 以来,我无法获取图像数据,而是出现以下异常。

无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布。

图像驻留在本地系统中,是学生必须尝试的问题的一部分。我相信这与跨域限制有关。但是,在这种情况下没有跨域请求,因为应用程序和图像都是同一个应用程序的一部分,并且是在本地访问的。 (学生不能手动选择图像,因为它是试卷的一部分,必须自动送入画布并自动保存。我需要自动保存的图像数据,由于上述异常,我没有得到。 )。请帮忙,我卡在这一点上。

【问题讨论】:

【参考方案1】:

我终于解决了。在创建我的第一个浏览器实例之前,通过输入以下 chromium 开关禁用同源策略

BrowserPreferences.setChromiumSwitches("--disable-web-security", "--allow-file-access-from-files");

感谢 JxBrowser 支持团队在这方面非常及时地帮助我。

【讨论】:

以上是关于在 JxBrowser 中访问 Canvas 时的跨域限制的主要内容,如果未能解决你的问题,请参考以下文章

JxBrowser概述与简单应用

无法在 jxbrowser-java 中设置地理定位权限

使用 JxBrowser 呈现时,单击延迟并在 Flash 中输入问题

JxBrowser 6.12:保存的文件不出现

不使用 JxBrowser 插件在弹出窗口中查看 pdf 的 JavaFx

如何为 netbeans java 添加 jxbrowser 的许可证密钥?