Html2canvas: غير معلوم (في الوعد) العنصر المقدم ليس ضمن المستند

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

ما معنى هذا الخطأ؟ وكيفية اصلاحها

Needs More Information

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

إذا كنت تستخدم jQuery للعثور على استخدام DIV
html2canvas ($ ("# element") [0]). ثم (الوظيفة (canvas) {
$ ("# element-out"). append (canvas)؛
}) ؛

ال 23 كومينتر

العنصر الذي تحاول عرضه ليس ضمن DOM المستند

فكيف تصلح هذه المشكلة؟

0.5 جيد ولكن عندما أقوم بالترقية إلى 1 حصلت على هذا الخطأ

يرجى مشاركة مثال على jsfiddle

لقد حاولت تحميل html2canvas js (الإصدار 1) وتطبيقي js بعد نص HTML وتم إصلاح هذه المشكلة بالنسبة لي.

هل حصل أي شخص على حل لهذه المشكلة ، لدي نفس المشكلة أثناء استخدام صفحة ASP.Net MVC cshtml.

إذا كنت تستخدم jQuery للعثور على استخدام DIV
html2canvas ($ ("# element") [0]). ثم (الوظيفة (canvas) {
$ ("# element-out"). append (canvas)؛
}) ؛

لكنني غير قادر على التقاط صورة لخريطة google باستخدام html2canvas (كل صور الخريطة ليست قادمة) ، هل يمكن لأي شخص مساعدتي في كيفية القيام بنفس الشيء في cshtml ؟؟؟

cjcortezRaghavPrabhu لا حل smartbepl إلى ما فوق إصلاح ذلك لك افتراض كنت تستخدم مسج أو بعض المكتبات الأخرى التي يقدم قائمة من العناصر بدلا من واحد Element ؟

هذا يعمل بالنسبة لي!
html2canvas ($ ('# div'). get (0)). ثم (الوظيفة (canvas) {
console.log (قماش) ؛
}) ؛

شكرا انها عملت

jeremielodi شكرًا لك ، كان هذا

لقد جربت رمزًا مشابهًا لما ورد أعلاه ، ولكن ربما لم يكن الخطأ الذي أواجهه مرتبطًا تمامًا: غير معلوم (في الوعد) غير محدد ... الوعد مرفوض (غير متزامن)

كنت أواجه نفس المشكلة بالضبط - كنت أرغب في الاتصال بـ HTML2Canvas عند النقر على الزر. بغض النظر عن الطريقة التي كتبت بها استدعاء HTML2Canvas ، سأحصل على خطأ "غير معلوم (في الوعد) غير محدد ... تم رفض الوعد (غير متزامن)". أخيرًا ، تعلمت قليلاً عن كيفية عمل الوعود ووجدت أن الحل يضيف شيئًا:

function myFunction() {
    html2canvas(document.querySelector("#capture")).then(canvas => {          
            var base64encodedstring = canvas.toDataURL("image/jpeg", 1).replace("data:image/jpeg;base64,", "");
            j$("[id$='inputHidden']").val(base64encodedstring);
            console.log('Saving...');
            mySaveFunction();
        })
        .catch(function (error) {
            /* This is fired when the promise executes without the DOM */    
        });
}

كلمة تحذير ، أنا مبتدئ في جافا سكريبت تمامًا ولا أفهم سوى القليل جدًا عن كيفية عمل الوعود. يعمل الكود الخاص بي بشكل جيد بدون .catch () إذا استخدمته خارج الوظيفة. أفترض أنه بطريقة ما ، عندما تقوم بتغليفه ، فإنه لم يعد لديه وصول DOM الصحيح ويفشل الوعد.

ikemike هذا يمكن أن يساعدك
"" html


html2canvas


niklasvh بأحدث إصدار من html2canvas لم أفهم (في الوعد): خطأ غير محدد. هل تستطيع مساعدتي رجاء.

image

image

هذا يعمل

هذا يفي بالغرض بالنسبة لي:

function downloadURI(uri, name) {
    var link = document.createElement("a");

    link.download = name;
    link.href = uri;
    document.body.appendChild(link);
    link.click();
    clearDynamicLink(link); 
}

function DownloadAsImage() {
    var element = $("#table-card")[0];
    html2canvas(element).then(function (canvas) {
        var myImage = canvas.toDataURL();
        downloadURI(myImage, "cartao-virtual.png");
    });
}

في الكروم ، إنه يعمل بشكل جيد ، لكن في IE11 ، لا يعمل ... T_T؛

غير معلوم (في الوعد): خطأ غير محدد

bandacs هل وجدت حلاً لهذا؟ أتلقى خطأً دقيقًا كما لو كانت لقطة شاشتك.

أنا أستخدم إصدار 1.0 alpha 12 وأواجه نفس المشكلة. لقد جربت كل هذه الحلول.

لقد جربت هذا الحل من خلالsmartbepl
html2canvas ($ ("# element") [0]). ثم (الوظيفة (canvas) {
$ ("# element-out"). append (canvas)؛
}) ؛

لقد جربت هذا عن طريقjeremielodi
html2canvas ($ ('# div'). get (0)). ثم (الوظيفة (canvas) {
console.log (قماش) ؛
}) ؛

لقد جربت أيضًا حل leandrocgsi وحاولت إضافة التقاط كما يقترح ikemike .

لتبسيط الأمر والتأكد من تحميل جميع العناصر على DOM ، أضع وظيفة تسمى take_screenshot ().

الوظيفة take_screenshot ()
{
html2canvas ($ (". image__container") [0]). ثم (canvas => {
console.log ('الرجاء العمل أنا أفقد عقلي') ؛
}) ؛
}
ثم أتصل بـ take_screenshot () مباشرة من وحدة تحكم جافا سكريبت للتأكد من تحميل كل شيء.
أحصل على نفس الخطأ غير معلوم (في الوعد) غير محدد.

لدي بالضبط نفس المشكلة التي واجهتها https://github.com/niklasvh/html2canvas/issues/1313#issuecomment -377132089
يمكن لأي شخص العثور على حل لهذه القضية؟

لماذا فشلت في Cheerio؟

   .get(url)
   .end((err, res) => {
       cheerio.load(res.text)
       html2Canvas($('#statuses').get(0), {
           allowTaint: true
       }).then(function(canvas) {})
})
Uncaught (in promise) Error: Element is not attached to a Document

هناك اصطلاح آخر للاتصال الآن.
توقع الإصدار 0.5 العقدة الموجودة في المصفوفة ، بينما تقوم الآن بإعطائها مباشرة.
الإصدار 0.5 يحتوي على خيار "onrendered" ، بينما تستخدم الآن بنية "then".

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