首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >html2canvas忽略我的svg元素

html2canvas忽略我的svg元素
EN

Stack Overflow用户
提问于 2016-12-05 08:22:03
回答 2查看 6.2K关注 0票数 5

我尝试打印页面的屏幕,然后将其保存到base64中,它运行良好,但是看起来svg元素被忽略了,有些css样式工作不好,比如:before:after,原始页面看起来-

但是在转换之后看起来是这样的-

您可以看到右边的圆圈是忽略的,顶部菜单中的箭头和标签上相同的:before:after,并添加新的选项卡按钮(+)。我的转换代码看起来-

代码语言:javascript
运行
复制
printOnePage(){
        document.getElementById('helpPage').style.display= 'none';
        let page = document.getElementById('appContainer');
        html2canvas(page,{
            onrendered: function(canvas) {
                $('#img_val').val(canvas.toDataURL("image/png"));
                console.log(document.getElementById('img_val'));
                //document.getElementById("phpSendForm").submit();
            }
        });
        document.getElementById('helpPage').style.display= '';

    }

有什么提示会导致这种情况吗?

EN

回答 2

Stack Overflow用户

发布于 2020-06-17 08:39:16

如果CSS属性位于CSS页面中,Html2canvas将忽略svg元素。

我有以下问题:我有一个svg块和一个行块。html2canvas捕获div块,但不捕获我的行。每个元素的样式都已在CSS页面中声明,其类名为这两个元素的类名。

解决方案就是将CSS属性放在svg和行标记中,如下所示:

代码语言:javascript
运行
复制
<div>
<svg width="100%" height="100%">
<line style="cursor: pointer; stroke: black; stroke-width: 2;" />
</svg>
</div>
票数 2
EN

Stack Overflow用户

发布于 2018-06-27 06:32:35

html2canvas支持SVG呈现,因为0.5.0-alpha1只是

  1. 更新
  2. 添加allowTaint属性。

就像一击:

代码语言:javascript
运行
复制
html2canvas(copyDom[0], {
        useCORS: true,
        imageTimeout:0,
        allowTaint: true //you can add this property
    }).then(function (canvas) {})
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40969900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档