ΠΡΠΈΠ²Π΅Ρ -
ΠΡΠ»ΠΈ Ρ Π²ΡΡΠ°Π²Π»Ρ ΡΠ΅ΠΊΡΡ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΌΠΈ Π² Π½Π΅ΠΌ, ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ² [ΠΏΡΠΎΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ²Π΅ΡΠ½ΡΡΡΠΌ Π² ΡΡΡΠΎΠΊΠ΅ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΌΠΈ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ]. Π― Π²ΡΡΠ°ΡΠΈΠ» ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ [ΡΠΊΠ°ΠΆΠ΅ΠΌ 3] ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π·Π°Π΄. ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ?
ΠΡΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠ°ΡΡΠ° Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² Π² input
s ΠΈΠ»ΠΈ textarea
s. ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΡΡ Range
s ΠΈ Π½Π°ΠΉΡΠΈ ΠΈΡ
ΠΏΠΎΠ·ΠΈΡΠΈΠΈ (Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅), Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ Π»Π΅Π½ΠΈΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
ΡΡΡΠΎΠΊ Π² Π½Π°ΡΡΠΎΡΡΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π° Π½Π° https://github.com/niklasvh/html2canvas/blob/master/src/Parse.js#L717.
Π₯ΠΎΡΠΎΡΠΎ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ - ΡΡΠΎ ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π»Π΅Π½ΠΈΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? Π― Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π³Π»ΡΠΏΡΠΉ Π²ΠΎΠΏΡΠΎΡ. Π― ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ / n / r Π² ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Unicode, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² createTextNode (), Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΡ .
Π― Π½Π°ΡΠ΅Π» Π·Π΄Π΅ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: http://stackoverflow.com/questions/22317823/html2canvas-remove-multiple-spaces-and-line-break
ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ <div contenteditable="true"></div>
Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ textarea
.
ΠΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ angular, ΠΈ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ng-model
.
UPD
Π― Π½Π°ΡΠ΅Π» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ng-model
Π² div Π·Π΄Π΅ΡΡ: http://mehrantm.blogspot.com/2013/10/how-make-two-way-binding-to-your.html
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ-ΡΠΎ ~
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ textarea Π½Π° div ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ html2canvas? ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ div ΠΎΠ±ΡΠ°ΡΠ½ΠΎ
Π― ΡΠ΅ΡΠΈΠ» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
$('textarea').each(function() {
if(!$(this).hasClass('d-none')){
$(this).replaceWith("<div contenteditable=\"true\">"+$(this).html()+"</div>")
}
});
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ html2canvas, ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π½Π° :)
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ textarea Π½Π° div ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ html2canvas? ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ div ΠΎΠ±ΡΠ°ΡΠ½ΠΎ