Signature_pad: خطأ نحوي IE11

تم إنشاؤها على ٦ نوفمبر ٢٠١٨  ·  7تعليقات  ·  مصدر: szimek/signature_pad

هل تريد طلب ميزة أو الإبلاغ عن خطأ؟
حشرة

ما هو السلوك الحالي؟
لقد قمت بتضمين "signature_pad": "^ 3.0.0-beta.3" في angular6 عبر package.json
إنه يعمل بشكل جيد في جميع المتصفحات ، ولكن في IE11 لا يمكن تحميل موقع الويب بسبب خطأ.

image

"خطأ نحوي" بدون أي وصف ما هو الخطأ.

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

حاول الاستيراد بهذه الطريقة:
تغيير من:
import SignaturePad from 'signature_pad';
ل:
import * as SignaturePad from 'signature_pad/dist/signature_pad';

ال 7 كومينتر

ليس لدي أي فكرة عن الشكل الذي تبدو عليه عملية إنشاء Angular 6 ، ولكن يجب عليك تجميعها باستخدام نفس تكوين Babel الذي تستخدمه لترجمة التعليمات البرمجية الخاصة بك.

يمكنك أيضًا استخدام ميزة webpack resolve.alias (لم يتم اختبارها) ، والتي يجب أن تسمح لك بتحميل الإصدار المترجم بالفعل بدلاً من ذلك:

module.exports = {
  //...
  resolve: {
    alias: {
      signature_pad: 'signature_pad/dist/signature_pad.js'
    }
  }
};

شكرا لردكم السريع.
وسوف محاولة إعطائها. سأحاول أيضًا الحصول على بابل بوليفيل إذا كانت فكرتك لا تعمل. لم استخدمه من قبل

حاول الاستيراد بهذه الطريقة:
تغيير من:
import SignaturePad from 'signature_pad';
ل:
import * as SignaturePad from 'signature_pad/dist/signature_pad';

وظيفة التنزيل (dataURL ، اسم الملف) {
if (navigator.userAgent.indexOf ("Safari")> -1 && navigator.userAgent.indexOf ("Chrome") === -1) {
window.open (dataURL) ؛
}
### // إضافة العبارة أدناه على app.js - تعمل لأن اثنين آخرين غير مدعومين في IE 11
وإلا إذا (window.navigator && window.navigator.msSaveOrOpenBlob) {var blobwin = dataURLToBlob (dataURL) ،window.navigator.msSaveOrOpenBlob (blobwin ، filename) ؛}
آخر {
var blob = dataURLToBlob (dataURL) ،
var url = window.URL.createObjectURL (blob) ،

var a = document.createElement("a");
a.style = "display: none";
a.href = url;
a.download = filename;

document.body.appendChild(a);
a.click();

window.URL.revokeObjectURL(url);

}
}

نجح حل sdqwerty بالنسبة لي. ومع ذلك ، تجدر الإشارة إلى أن webpack يحتوي على حقل يسمى mainFields والذي يتم تعيينه افتراضيًا على ['browser', 'module', 'main'] . هذه مرتبة حسب الأولوية ، ولا تتضمن signature_pad browser في package.json ، لذلك يتم انتقاء الوحدة. يعين هذا الملف .m.js ، والذي يتضمن بناء جملة ES6 مثل class - والذي لا يدعمه IE11.

szimek أوصيك بتحديث package.json لتضمين حقل متصفح وفقًا لتوصيات npm هنا:
https://docs.npmjs.com/files/package.json#browser

يجب أن يوضح ذلك قضايا IE11 هذه.

نجح هذا بالنسبة لي:

module.exports = {
  resolve: {
    alias: {
      'signature_pad': 'signature_pad/dist/signature_pad' // <- hier without '.js' at the end!
    }
  }
};

وباستخدام Laravel-Mix:

mix.webpackConfig({
    resolve: {
        alias: {
            'signature_pad': 'signature_pad/dist/signature_pad',
        }
    }
});

ليس لدي أي فكرة عن الشكل الذي تبدو عليه عملية إنشاء Angular 6 ، ولكن يجب عليك تجميعها باستخدام نفس تكوين Babel الذي تستخدمه لترجمة التعليمات البرمجية الخاصة بك.

يمكنك أيضًا استخدام ميزة webpack resolve.alias (لم يتم اختبارها) ، والتي يجب أن تسمح لك بتحميل الإصدار المترجم بالفعل بدلاً من ذلك:

module.exports = {
  //...
  resolve: {
    alias: {
      signature_pad: 'signature_pad/dist/signature_pad.js'
    }
  }
};

الإصدار المترجم v3.0.0-beta.4 لا يدعم IE11 بسبب الكلمة الأساسية class .

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

القضايا ذات الصلة

davidosuna1987 picture davidosuna1987  ·  11تعليقات

chitgoks picture chitgoks  ·  5تعليقات

Emmark picture Emmark  ·  4تعليقات

erangaapp picture erangaapp  ·  8تعليقات

MarcGodard picture MarcGodard  ·  8تعليقات