你好 -
如果我输入带有回车的文本,则屏幕截图不包含回车 [只是看起来折叠在带有回车的字符串中]。 几个月前,我一直在拉这个代码 [say 3] mos。 已经修复还是仍然存在问题?
这仍然是一个问题,没有补丁可以更准确地在input
s 或textarea
s 内定位文本。 要么需要创建文本Range
并找到它们的位置(更准确的解决方案),要么只是将新行转换为实际新行的懒惰解决方案。
这个问题在https://github.com/niklasvh/html2canvas/blob/master/src/Parse.js#L717上很明显
好的,谢谢 - 懒惰的解决方案会带来什么? 我还没有详细研究修改您的代码,所以如果这是一个愚蠢的问题,请原谅我。 我尝试将结束行字符 /n/r 转换为可以传递给 createTextNode() 的 unicode 换行符,但它似乎没有任何区别。
您可能需要测量每条线的位置并相应地呈现它们。
也许我们只能在使用 html2canvas 之前将 textarea 替换为 div?然后将 div 改回来
我使用这个函数解决了这个问题:
$('textarea').each(function() {
if(!$(this).hasClass('d-none')){
$(this).replaceWith("<div contenteditable=\"true\">"+$(this).html()+"</div>")
}
});
在调用 html2canvas 之前粘贴该函数,您的问题将得到解决:)
最有用的评论
也许我们只能在使用 html2canvas 之前将 textarea 替换为 div?然后将 div 改回来