Hai -
Jika saya memasukkan teks dengan pengembalian di dalamnya, tangkapan layar tidak berisi pengembalian [hanya terlihat runtuh dalam string dengan carriage return]. Saya bertahan menarik kode ini beberapa [katakanlah 3] bulan yang lalu. Apakah itu sudah diperbaiki atau masih menjadi masalah?
Ini masih menjadi masalah, belum ada tambalan untuk memposisikan teks dalam input
s atau textarea
lebih akurat. Apakah perlu membuat teks Range
s dan menemukan posisi mereka (solusi yang lebih akurat) atau hanya solusi malas untuk mengubah baris baru menjadi baris baru yang sebenarnya.
Masalahnya terbukti di https://github.com/niklasvh/html2canvas/blob/master/src/Parse.js#L717
Ok terima kasih - apa yang dibutuhkan oleh solusi malas? Saya belum melihat secara detail untuk memodifikasi kode Anda, jadi maafkan saya jika ini adalah pertanyaan bodoh. Saya mencoba mengubah karakter garis akhir /n/r menjadi karakter umpan baris unicode yang dapat diteruskan ke createTextNode() tetapi sepertinya tidak ada bedanya.
Anda mungkin perlu mengukur posisi untuk setiap baris dan membuatnya sesuai.
Saya telah menemukan solusi di sini: http://stackoverflow.com/questions/22317823/html2canvas-remove-multiple-spaces-and-line-break
Itu menggunakan <div contenteditable="true"></div>
untuk menggantikan textarea
.
Tapi saya menggunakan angular dan saya harus mencari tahu masalah ng-model
.
UPD
Saya menemukan solusi tentang menggunakan ng-model
pada `div' di sini: http://mehrantm.blogspot.com/2013/10/how-make-two-way-binding-to-your.html
Semoga bisa membantu seseorang ~
mungkin kita hanya bisa mengganti textarea ke div sebelum menggunakan html2canvas?dan setelah itu mengganti div kembali
Saya memecahkan masalah ini dengan menggunakan fungsi ini:
$('textarea').each(function() {
if(!$(this).hasClass('d-none')){
$(this).replaceWith("<div contenteditable=\"true\">"+$(this).html()+"</div>")
}
});
Rekatkan fungsi sebelum memanggil html2canvas dan masalah Anda akan terpecahkan :)
Komentar yang paling membantu
mungkin kita hanya bisa mengganti textarea ke div sebelum menggunakan html2canvas?dan setelah itu mengganti div kembali