عنوان:

‫پشتیبانی از IE در برنامه‌های Angular


نویسنده: وحید نصیری
تاریخ: ۱۳۹۷/۰۳/۰۹ ۱۴:۱۰
آدرس: www.dntips.ir
اگر یک برنامه‌ی Angular را به صورت پیش‌فرض در IE اجرا کنیم، یک چنین تصویری مشاهده خواهد شد:


برای اجرای برنامه توسط نگارش‌های مختلف IE می‌توانید برنامه‌ی IE Tester را نصب کنید.


مشکل چیست؟

مشکل عدم اجرای برنامه‌های Angular در IE، به قدیمی بودن موتور JavaScript آن بر می‌گردد؛ خصوصا در مورد توابع کار با آرایه‌ها. برای مثال در مورد کار با for..of هیچ نوع پشتیبانی از آن در IE وجود ندارد (و نخواهد داشت؛ با توجه به پایان دوره‌ی پشتیبانی آن):



چگونه پشتیبانی از ویژگی‌های جدید JavaScript را به مرورگر IE اضافه کنیم؟

Angular امکان افزودن کمبودهای موتور JavaScript پیش‌فرض IE را توسط کتابخانه‌ی core-js میسر کرده‌است که اصطلاحا به آن polyfills گفته می‌شود. برای این منظور فایل src\polyfills.ts را گشوده و تغییرات زیر را به آن اعمال کنید:
الف) در این فایل، هرجایی  import // وجود دارد، آن‌را تبدیل به import کنید (تمام importهایی که کامنت شده‌اند را از حالت کامنت خارج کنید).
ب) دو بسته‌ی زیر را نیز باید نصب کنید:
npm install --save classlist.js
npm install --save web-animations-js
البته اگر به کامنت‌های این فایل دقت کنید، نیاز به نصب این بسته‌ها نیز در آن عنوان شده‌است.


نتیجه‌ی نهایی پس از افزودن polyfills مخصوص IE

اکنون اگر مجددا برنامه را کامپایل و اجرا کنید، برنامه‌ی Angular بدون مشکل در IE اجرا خواهد شد:

نظرات

  • امین پارسا در ۱۳۹۷/۰۳/۱۰ ۱۴:۳۳
    باتوجه به اینکه ie از دور مرورگرها خارج شده با اینحال چرا باید خصوصیات جاوااسکریپت را به ie اضافه کنیم؟ دلیل این کار چیست؟
    • وحید نصیری در ۱۳۹۷/۰۳/۱۰ ۱۴:۳۵
      تهیه برنامه‌های سازمانی. هنوز هم در سازمان‌ها و ادارات از IE زیاد استفاده می‌شود.
    • وحید نصیری در ۱۳۹۷/۰۳/۱۷ ۹:۴