需求是将页面上的一张图表做前端导出,我用到了两个插件,一个是html2canvas进行截图,还有一个是jspdf生成pdf文件并且保存到本地
firefox和chrome都已经通过测试了,360的兼容模式下不能正常跑。
代码跑到这里的时候会报错:
html2canvas($("#vm0"), {
onrendered: function (canvas) {
$(canvas).attr({"style":"margin-top:10px;","id":"vm0_save"})
$("#realchart").append(canvas);
}
});
刚开始浏览器控制台抛出这个错误:
下了一个es6-promise依赖包,然后在html2canvas.js最上面加了一句:
var Promise = require('es6-promise').Promise;
这个报错就不再出现了,但是随之而来的是下面这个报错:
然后就没有什么头绪解决了,有遇到过这个问题的大神吗? 另外发现html2canvas的坑挺多的,有没有可以替代它的插件
兼容模式是IE浏览器,一般内核就是ie7,ie8之类的,Promise是es6语法了,不兼容ie7,8。要兼容性好就在服务器端生成,而不是用客户端js
因为是要将echarts导出,echarts的直接转成base64的时候有个黑底,但是又不能简单的通过添加背景颜色去解决。我看了一下echarts渲染图表的节点,环形图是分了3个canvas在渲染,一个放背景颜色,一个放一些气泡动画,还有一个放图表内容。也就是我想导出的那个包含图表内容的canvas节点,是无法通过config去配置它的底色的。。。。也许改源码可以,但是这个超过能力范畴了。总的来说就是无论后台生成还是前端直接导出,我都要用到html2canvas去截这个图。但现在这个插件的代码在IE下面跑不下去。
另外为什么不用echarts自带的图片导出:一是因为除了图片还有一个pdf格式的需求,二是因为一个页面是由多张图表组成的,美工要求导出的文件排下版一起导出
楼主,解决了吗,我的也是这个问题,尝试使用了ie兼容补丁也是不行
你好?请问解决了吗?我现在也是使用html2canvas在360兼容模式下报错,另外保存如何将base64图片保存到本地。要考虑ie的兼容性。
楼主解决了吗?我也是这个问题,求解决方案
IE8调试了下,其中有句代码t.getComptedStyle(e,n)报错了,原因是ie8不支持getComputedStyle方法,改为e.currentStyle?e.currentStyle:t.getComputedStyle(e,n),是可以解决这个问题了,但是后面还有其他问题引出。暂时无解。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。