عمليات استيراد HTML5: استيراد ملفات HTML إلى ملفات HTML

عمليات استيراد HTML5: استيراد ملفات HTML إلى ملفات HTML

يُعد عنصر “link” نعمة. فهو يتيح إمكانية التضمين السهل لأوراق الأنماط stylesheets  وجافا سكريبت JavaScripts المطلوبة في مستندات متعددة. ومع ذلك، فإنه لا يسمح بتضمين ملفات HTML. ولتحقيق ذلك، اقتصرنا على عنصر “iframes” أو طريقة “XMLHttpRequest()” في JavaScript. بفضل عمليات استيراد HTML5 الجديدة، يمكننا الآن استخدام عنصر “link” لتحميل ملف HTML إلى ملف آخر.

عمليات استيراد HTML5: استيراد ملفات HTML إلى ملفات HTML Image-1
تصوير Pankaj Patel على Unsplash

نصيحة محترف

قم بالتسجيل للحصول على حساب Jotform مجاني لإنشاء نماذج قوية عبر الإنترنت في دقائق – دون الحاجة إلى الترميز.

توصيف Markup بسيط في الرأس

يعد تضمين ملف HTML أمرًا بسيطًا. نحتاج فقط إلى استخدام عنصر “<link>” المشترك. ثم نضيف القيمة “import” إلى السمة “rel”. وباستخدام “href” نرفق عنوان URL لملف HTML، تمامًا كما اعتدنا عليه عندما يتعلق الأمر بأوراق الأنماط والنصوص.

<link href=”extern.html” rel=”import” />

إذا كان الملف المراد استيراده يحتوي على عناصر نمط “style” أو “برنامج نصي” script، فسيتم استيرادها أيضًا. لا يهم ما إذا كانت هذه العناصر تم ترميزها في رأس المستند أو نصه. يمكن أن تكون إحدى حالات الاستخدام لواردات HTML5 هي جمع كل أوراق الأنماط والبرامج النصية المطلوبة في مشروع معين وإضافتها إلى ملف HTML واحد، والذي يتم استيراده بعد ذلك إلى جميع ملفات المشروع الأخرى. هذا يسهل إلى حد كبير صيانة المشاريع الأكبر.

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

الوصول إلى محتويات ملف الاستيراد

سيتم تحميل المحتويات الأخرى من المستند الذي تم استيراده، ولكن لن يتم عرضها. لن تكون جميع النصوص والصور والوسائط الأخرى مرئية لأنها ليست جزءًا من شجرة DOM للمستند الأصلي. ومع ذلك، لا يزال بإمكانك الوصول إليها عبر JavaScript.

var extern = document.getElementsByTagName(“link”)[0].import;

يفترض مثالنا أن العنصر “link” الأول يقوم بتحميل ملف HTML. وباستخدام خاصية “import” في JavaScript نكتب بنية الشجرة الكاملة للملف المستورد إلى متغير. من هناك يمكننا الوصول إلى العقد الفردية عبر JavaScript.

var absatz = extern.getElementsByTagName(“p”)[0];

من هنا يمكننا الوصول إلى جميع العقد وقراءتها باستخدام طرق JavaScript الشائعة مثل “getElementsByTagName ()”. الآن يمكننا إضافتها بشكل مريح إلى شجرة DOM للمستند الأصلي. في نهج أكثر جذرية، يمكننا أيضًا استبدال عنصر “body” بالكامل مع محتويات الملف المستورد.

window.addEventListener(“load”, function() {

  document.getElementsByTagName(“html”)[0].replaceChild(extern.getElementsByTagName(“body”)[0], document.getElementsByTagName(“body”)[0]);

}, false);

يستبدل مثالنا محتوى عنصر “body” باستخدام “replaceChild ()”. للتأكد من عدم بدء الاستبدال قبل تحميل جميع العناصر، ترتبط الوظيفة بمستمع حدث event listener تمت إضافته عبر “addEventListener ()”.

دعم المتصفح

في وقت كتابة هذا التقرير، كان Chrome يدعم عمليات استيراد HTML5 فقط. يجب عليك أيضًا تمكين الوظيفة يدويًا. اتصل بـ “chrome: // flags” من شريط العناوين، والذي سيمنحك الوصول إلى الميزات التجريبية. ابحث عن “تنشيط عمليات استيراد HTML” وقم بتنشيطها جيدًا. بعد بداية جديدة لاستيراد Chrome HTML5 الخاص بك، ستكون متاحة.

استخدم الوظيفة التالية للتحقق مما إذا كان متصفح معين يدعم عمليات استيراد HTML5.

if (“import” in document.createElement(“link”)) {

  // HTML5 Imports are supported.

}
يمكن للمتصفحات القديمة الاستفادة من polyfill، الذي يحاكي عمليات استيراد HTML5 في المتصفحات غير المدعومة. بهذه الطريقة ليست هناك حاجة للذهاب بدون واردات HTML5 في مشاريع الويب الحديثة.

كتابة تعليق:

Jotform Avatar
هذا الموقع محمي بواسطة reCAPTCHA وتنطبق سياسة الخصوصية وشروط الخدمة الخاصة بـ Google.

Podo Comment كن أول من يعلق.