html2canvas图表没有,将html2Canvas与HighCharts一起使用

本文详细介绍了如何使用Highcharts生成的SVG图表,通过canvg库将其转换为canvas元素,再结合html2canvas捕获屏幕截图,最后清除临时canvas并还原原始SVG。适合开发者理解和应用在网页截图需求中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Highcharts使用svg绘制图表.您将需要使用canvg库将此svg绘制到临时画布,然后在使用html2canvas截取屏幕截图后删除该画布.

试试这个:

//find all svg elements in $container

//$container is the jQuery object of the div that you need to convert to image. This div may contain highcharts along with other child divs, etc

var svgElements= $container.find('svg');

//replace all svgs with a temp canvas

svgElements.each(function () {

var canvas, xml;

canvas = document.createElement("canvas");

canvas.className = "screenShotTempCanvas";

//convert SVG into a XML string

xml = (new XMLSerializer()).serializeToString(this);

// Removing the name space as IE throws an error

xml = xml.replace(/xmlns=\"http:\/\/www\.w3\.org\/2000\/svg\"/, '');

//draw the SVG onto a canvas

canvg(canvas, xml);

$(canvas).insertAfter(this);

//hide the SVG element

this.className = "tempHide";

$(this).hide();

});

//...

//HERE GOES YOUR CODE FOR HTML2CANVAS SCREENSHOT

//...

//After your image is generated revert the temporary changes

$container.find('.screenShotTempCanvas').remove();

$container.find('.tempHide').show().removeClass('tempHide');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值