首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >html2canvas覆盖css (字体)

html2canvas覆盖css (字体)
EN

Stack Overflow用户
提问于 2014-02-25 16:32:21
回答 2查看 5.1K关注 0票数 0

我正在使用html2canvas javascript库为我的应用程序截屏,以获得反馈功能。然而,我的应用程序包含敏感的媒体数据,我不希望这些数据在屏幕截图上可读。所以我创建了一个字体,每个字形看起来都像一个圆圈(类似于IE中的密码输入)。我的问题是:

有没有可能以某种方式告诉html2canvas用这种字体呈现所有内容?我有一个css规则,它将此应用于页面上的每个元素。现在我要向body元素添加一个css类,然后运行html2canvas,然后删除该类以获得原始字体。但是在渲染画布的时候,用户可以看到这些奇怪的字形,我不想让他们看到。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-05-17 13:38:42

在呈现之前,您可以尝试向包含敏感信息的元素添加data-html2canvas-ignore属性。

票数 2
EN

Stack Overflow用户

发布于 2014-02-25 17:19:05

不幸的是,html2canvas库的实现非常简单。我尝试了几种不同的想法,您所能做的就是使用覆盖来隐藏丑陋的文本呈现,只要覆盖位于调用html2canvas的元素之外。

代码语言:javascript
复制
// Hide your content with an overlay
$( '.snapshotoverlay' ).css( 'display', 'block' );

// .. then do your ugly modifications
$( '.previewWrap' ).css( 'background', 'red' );

// make sure your overlay div isn't contained in the div you're screenshotting.
html2canvas($('.content'), {  

    onrendered: function (canvas) {

        // do whatever you need to with the resulting canvas object
        var canvasImg = canvas.toDataURL("image/jpg");
        $('#canvasImg').html('<img src="'+canvasImg+'" alt="">');

        // undo your ugly changes
        $( '.previewWrap' ).css( 'background', 'black' );

        // hide your overlay
        $( '.snapshotoverlay' ).fadeOut();
    }
});

这是一个JSFiddle,在截图过程中,框被涂成红色,但由于覆盖,你永远看不到红色:

http://jsfiddle.net/tommcquarrie/tJmQ7/

我认为它实际上增加了一些截图体验。添加摄像头滴答声,你就可以模拟iOS 7了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22008547

复制
相关文章

相似问题

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