Html2canvas: Area teks tidak memiliki jeda baris pengguna saat tangkapan layar

Dibuat pada 26 Mar 2012  ·  6Komentar  ·  Sumber: niklasvh/html2canvas

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?

Bug

Komentar yang paling membantu

mungkin kita hanya bisa mengganti textarea ke div sebelum menggunakan html2canvas?dan setelah itu mengganti div kembali

Semua 6 komentar

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 :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat