我尝试将zingchart图像导出到java中的base64对象中。
我想在js中像这样使用getimageapi:
function exportImgChart(idChart) {
zingchart.exec('idChart', 'getimagedata', {
filetype: 'png',
callback : function(imagedata) {
console.log(imagedata);
document.getElementById('output_image').src = imagedata;
}
});}但是我不知道如何在java代码中调用它?我把我的js函数放如下:
public void getImageChart(AjaxRequestTarget target, String idChart) {
String js = MessageFormat.format("exportImgChart({0});", //
StringUtils.wrap(this.getMarkupId(), "'") //
);
target.appendJavaScript(js);
//how to get image base 64 here ?
}我的java框架是Wicket。
感谢您的帮助!
杰夫
发布于 2020-09-23 18:33:22
调用getImageChart(AjaxRequestTarget, String)是因为从浏览器到服务器进行了一些Ajax调用。
然后,在服务器端构造一个字符串,将该字符串与响应一起发送到浏览器。target.appendJavaScript(js);不会立即发送。它只是说"'js‘将是响应的一部分“,但是一旦getImageChart()和更多的方法被完全执行,响应就会被刷新到浏览器。
您不能在target.appendJavaScript(js)之后立即使用base64编码的图像。要获得base64数据,需要在JavaScript函数exportImgChart()中对服务器进行新的Ajax调用。这个新的Ajax调用很可能会调用新的回调方法,例如onBase64Image()或任何你命名的方法。
有关更多信息,请参阅此答案:https://stackoverflow.com/a/42612027/497381
https://stackoverflow.com/questions/64025367
复制相似问题