Html2canvas: لا تحتوي Textareas على فواصل أسطر المستخدم عند التقاط لقطة للشاشة

تم إنشاؤها على ٢٦ مارس ٢٠١٢  ·  6تعليقات  ·  مصدر: niklasvh/html2canvas

أهلا -

إذا أدخلت نصًا مع إرجاع بداخله ، فإن لقطة الشاشة لا تحتوي على المرتجعات [يبدو فقط مطويًا في سلسلة مع أحرف الإرجاع]. لقد استمريت في سحب هذا الرمز قبل بضعة أشهر [قل 3] أشهر. هل تم إصلاح ذلك أم أنه لا يزال يمثل مشكلة؟

Bug

التعليق الأكثر فائدة

ربما يمكننا فقط استبدال textarea بـ div قبل استخدام html2canvas؟ وبعد ذلك نغير div للخلف

ال 6 كومينتر

لا تزال المشكلة ، لا يوجد تصحيح لوضع النصوص داخل 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 .

لكنني أستخدم الزاوية ويجب أن أكتشف مشكلة 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 وسيتم حل مشكلتك :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات