html2canvas在360浏览器兼容模式下报错问题 10C

需求是将页面上的一张图表做前端导出,我用到了两个插件,一个是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的坑挺多的,有没有可以替代它的插件

7个回答

兼容模式是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),是可以解决这个问题了,但是后面还有其他问题引出。暂时无解。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问