Html2canvas: 截屏时,文本区域没有用户换行符

创建于 2012-03-26  ·  6评论  ·  资料来源: niklasvh/html2canvas

你好 -

如果我输入带有回车的文本,则屏幕截图不包含回车 [只是看起来折叠在带有回车的字符串中]。 几个月前,我一直在拉这个代码 [say 3] mos。 已经修复还是仍然存在问题?

最有用的评论

也许我们只能在使用 html2canvas 之前将 textarea 替换为 div?然后将 div 改回来

所有6条评论

这仍然是一个问题,没有补丁可以更准确地在input s 或textarea s 内定位文本。 要么需要创建文本Range并找到它们的位置(更准确的解决方案),要么只是将新行转换为实际新行的懒惰解决方案。

这个问题在https://github.com/niklasvh/html2canvas/blob/master/src/Parse.js#L717上很明显

好的,谢谢 - 懒惰的解决方案会带来什么? 我还没有详细研究修改您的代码,所以如果这是一个愚蠢的问题,请原谅我。 我尝试将结束行字符 /n/r 转换为可以传递给 createTextNode() 的 unicode 换行符,但它似乎没有任何区别。

您可能需要测量每条线的位置并相应地呈现它们。

我在这里找到了一个解决方案: http :
它使用<div contenteditable="true"></div>替换textarea

但是我使用 angular,我必须找出ng-model问题。

UPD
我在这里找到了关于在“div”上使用ng-model的解决方案: http :
希望能帮到人~

也许我们只能在使用 html2canvas 之前将 textarea 替换为 div?然后将 div 改回来

我使用这个函数解决了这个问题:

        $('textarea').each(function() {
            if(!$(this).hasClass('d-none')){
                $(this).replaceWith("<div contenteditable=\"true\">"+$(this).html()+"</div>")
            }
        });

在调用 html2canvas 之前粘贴该函数,您的问题将得到解决:)

此页面是否有帮助?
0 / 5 - 0 等级