تشغيل عدة وظائف في التحميل. تشغيل عدة وظائف عند التحميل كيفية استدعاء وظيفة تحميل الصفحة



الضغط على الزر عند تحميل الصفحة (4)

أريد تشغيل وظيفة عند تحميل الصفحة، ولكن لا أريد استخدامها في .

لدي برنامج نصي يتم تشغيله إذا قمت بتهيئته، على سبيل المثال:

رمز الوظيفة () (/ الكود)

لكني أريد تشغيله بدون وجربت أشياء كثيرة منها على سبيل المثال:

Window.onload = codeAddress;

لكنها لا تعمل.

فكيف يمكنني تشغيله عند تحميل الصفحة؟

window.onload = function() (... وما إلى ذلك) ليست إجابة رائعة.

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

إجابة أكثر موثوقية هنا:

إذا (window.attachEvent) ( window.attachEvent("onload"، yourFunctionName); ) else ( if(window.onload) ( var curronload = window.onload; var newonload = function(evt) ( curronload(evt); yourFunctionName( evt); window.onload = newonload else (window.onload = yourFunctionName;)

بعض التعليمات البرمجية التي استخدمتها، نسيت أين وجدتها لمنح الفضل للمؤلف.

الدالة my_function() ( // أي كود أرغب في تشغيله بعد تحميل الصفحة) if (window.attachEvent) (window.attachEvent("onload", my_function);) else if (window.addEventListener) (window.addEventListener("load "، my_function، false)؛) else (document.addEventListener("load"، my_function، false)؛)

أتمنى أن يساعدك هذا :)

بدلاً من استخدام jQuery أو window.onload، اعتمدت JavaScript الأصلية بعض الميزات الرائعة منذ إصدار jQuery. تتمتع جميع المتصفحات الحديثة الآن بوظيفة DOM الجاهزة الخاصة بها دون استخدام مكتبة jQuery.

Document.addEventListener("DOMContentLoaded", function() ( تنبيه("جاهز!"); , false);

window.onload = codeAddress; يجب أن تعمل - والرمز الكامل هو:

اختبار وظيفة codeAddress() ( تنبيه("ok"); ) window.onload = codeAddress;

اختبار وظيفة codeAddress() ( تنبيه("موافق"); )

ألقِ نظرة على البرنامج النصي domReady، الذي يسمح لك بتكوين العديد من الوظائف لتشغيلها عند تحميل DOM. هذا هو ما يأتي Dom جاهزًا للقيام به في العديد من مكتبات JavaScript الشائعة، ولكنه خفيف الوزن ويمكن اعتماده وإضافته في بداية ملف البرنامج النصي الخارجي.

مثال الاستخدام

// أضف مرجعًا إلى البرنامج النصي domReady أو ضع // محتويات البرنامج النصي قبل هنا وظيفة codeAddress() () domReady(codeAddress);

إذا كنت تعرف JavaScript بشكل أو بآخر، فمن المحتمل أنك سمعت عن معالج حدث التحميل، والذي يُسمى onload. يتم تشغيل هذا الحدث مباشرة عند تحميل الصفحة. وفي كثير من الأحيان، عند تحميل الصفحة، يجب تنفيذ بعض الوظائف. ولكن ماذا لو كنت بحاجة إلى تشغيل وظائف JavaScript متعددة؟ في الحقيقة هذا السؤال طرحه أحد مستخدمي الموقع. لذلك، سأكتب عن إطلاق العديد من الوظائف عند التحميل في هذه المقالة.

الحل تافه حقًا، ما عليك سوى تشغيل دالة يتم من خلالها تشغيل جميع الوظائف الأخرى الضرورية:



الدالة أ () (
ب()
ج ()؛
}
الدالة ب() (
تنبيه ("بدأت الوظيفة ب ()")؛
}
الدالة ج() (
تنبيه ("بدأت الوظيفة c ()")؛
}



إذا قمت بفتح هذه الصفحة (لا توجد أشياء مهمة مثل علامة html أو، على سبيل المثال، عنوان الصفحة وترميزها، من أجل تبسيط فهم الكود)، فسترى كيف يتم استخدام b() و c () تعمل الوظائف عند تحميل الصفحة.

أريد اليوم أن أتحدث عن مشكلة واحدة غالبًا ما تنشأ بين الأشخاص الذين يبدأون في تعلم Javascript.

يحاولون التفاعل مع عناصر HTML الموجودة في الصفحة والتي تكون أقل في الكود من البرنامج النصي نفسه. وفقا لذلك، تم بالفعل تحميل البرنامج النصي، ولكن العنصر الذي ستحتاج إلى التفاعل معه لم يتم بعد. لهذا السبب، لن ينجح شيء.

خصوصية لغة جافا سكريبت هي أن التعليمات البرمجية الخاصة بها يتم تنفيذها بالتسلسل، سطرًا تلو الآخر، كما هي مكتوبة في الكود المصدري.

هنا مثال:

وثيقة بدون عنوان

لن يتم تطبيق قاعدة CSS (لون الخلفية: أصفر) على العنصر ذو المعرف #block، لأن خط

$("#block").css("background-color", "yellow");

سيتم تنفيذه قبل تحميل سطر html:

ماذا لو كنا بحاجة إلى تنفيذ تعليمات برمجية أو وظيفة فقط بعد تحميل المستند بالكامل؟

أريد أن أتحدث عن ثلاث طرق يمكنك من خلالها القيام بذلك.

1 الطريق. باستخدام مكتبة Jquery.

غالبًا ما أستخدمه بنفسي، وهو الحل الأبسط والأكثر ملاءمة، ولكنه يتطلب توصيل مكتبة Jquery.

إليك كيفية تحويل الكود السابق إذا استخدمنا الطريقة التالية.

#block (العرض: 100 بكسل؛ الارتفاع: 100 بكسل؛ الحدود: 1 بكسل صلب #ccc؛) $(document).ready (function())( $("#block").css("background-color", "yellow" )) ؛ وثيقة بدون عنوان

الطريقة 2. استخدام عنصر الجسم وسمة التحميل.

#block (العرض: 100 بكسل؛ الارتفاع: 100 بكسل؛ الحدود: 1 بكسل صلب #ccc؛) وظيفة funonload() ( $("#block").css("background-color", "yellow"); ) مستند بدون عنوان

3 طريقة. استخدام كائن window وخاصية التحميل الخاصة به.

#block (العرض: 100 بكسل؛ الارتفاع: 100 بكسل؛ الحدود: 1 بكسل صلب #ccc؛) وظيفة funonload() ( $("#block").css("background-color", "yellow"); ) window.onload = funonload; وثيقة بدون عنوان

اختر الطريقة التي تناسب موقفك وقم بتطبيقها.



 

قد يكون من المفيد أن تقرأ: