اگر از قبل کم و بیش می دانید جاوا اسکریپت، احتمالاً در مورد مدیریت رویداد شنیده اید بار، که نامیده می شود در حال بارگذاری. این رویداد بلافاصله پس از بارگذاری صفحه فعال می شود. و اغلب برخی از عملکردها باید هنگام بارگذاری صفحه اجرا شوند. اما در صورت نیاز چه می شود اجرای چندین توابع جاوا اسکریپت? در واقع این سوال را یکی از کاربران سایت پرسیده است. بنابراین، در مورد اجرای چندین تابع در onload، در این مقاله خواهم نوشت.
راه حل واقعاً بی اهمیت است، فقط تابعی را اجرا کنید که تمام توابع ضروری دیگر را اجرا کند:
اگر باز باشد این صفحه(چیزهای مهمی به عنوان برچسب وجود ندارد htmlیا به عنوان مثال عنوان و رمزگذاری صفحه، به منظور ساده کردن درک کد)، مشاهده خواهید کرد که در هنگام بارگذاری صفحه، عملکردها چگونه کار می کنند. ب()و ج().
کلیک بر روی بارگذاری صفحه (4)
من می خواهم زمانی که صفحه بارگذاری می شود یک تابع را اجرا کنم اما نمی خواهم از آن استفاده کنم
.من یک اسکریپت دارم که اگر آن را مقداردهی اولیه کنم اجرا می شود
، مثلا:تابع codeAddress() ( // کد )
اما من می خواهم بدون آن اجرا کنم
و من چیزهای زیادی را امتحان کردم مانند:Window.onload = کد آدرس;
اما این کار نمی کند.
بنابراین چگونه می توانم آن را در بارگذاری صفحه اجرا کنم؟
window.onload = function() (...etc جواب خوبی نیست.
این احتمالاً کار خواهد کرد، اما همچنین عملکردهای دیگری را که قبلاً به این رویداد متصل شده اند، از بین می برد. یا اگر تابع دیگری بعد از شما روی این رویداد قلاب شود، خراب می شود. بنابراین، میتوانید ساعات زیادی بعد را صرف تلاش کنید تا بفهمید چرا چیزی که کار میکند دیگر وجود ندارد.
پاسخ قوی تر در اینجا:
If(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() (// هر کدی که میخواهم بعد از بارگیری صفحه اجرا کنم) اگر (window.attachEvent) (window.attachEvent("onload", my_function);) در غیر این صورت اگر (window.addEventListener) (window.addEventListener("load "، my_function، false);) else (document.addEventListener("load"، my_function، false);)
امیدوارم این کمک کند :)
به جای استفاده از jQuery یا window.onload، جاوا اسکریپت بومی از زمان انتشار jQuery برخی از ویژگی های عالی را به کار گرفته است. همه دارند مرورگرهای مدرندر حال حاضر آن است عملکرد خود DOM بدون استفاده از کتابخانه jQuery آماده است.
Document.addEventListener("DOMContentLoaded", function() ( alert("Ready!"); ), false);
window.onload = آدرس کد; - باید کار کند، و کد کامل این است:
نگاهی به اسکریپت domReady بیندازید، که به شما اجازه می دهد تا چند تابع را برای اجرا در هنگام بارگیری DOM تنظیم کنید. این اساساً همان کاری است که Dom در بسیاری از کتابخانههای محبوب جاوا اسکریپت آماده انجام آن است، اما سبک وزن است و میتوان آن را در ابتدای کار خود گرفت و اضافه کرد. فایل خارجیاسکریپت
مثال استفاده
// اضافه کردن مرجع به اسکریپت domReady یا مکان // محتویات اسکریپت قبل از اینجا تابع codeAddress() () domReady(codeAddress);
امروز می خواهم در مورد یک مشکل صحبت کنم که اغلب برای افرادی که شروع به یادگیری جاوا اسکریپت می کنند ایجاد می شود.
آنها سعی می کنند با عناصر HTML موجود در صفحه که کد کمتری نسبت به خود اسکریپت دارند تعامل داشته باشند. بر این اساس، اسکریپت قبلاً بارگیری شده است، اما عنصری که باید با آن تعامل داشته باشید هنوز بارگیری نشده است. به همین دلیل، هیچ چیز کار نخواهد کرد.
خصوصیات عجیب و غریب زبان جاوا اسکریپتبه این صورت که کد آن به صورت متوالی، خط به خط، همانطور که در کد منبع نوشته شده است، اجرا می شود.
به عنوان مثال:
قانون css (رنگ پسزمینه: زرد) روی عنصر با id #block اعمال نخواهد شد، زیرا خط
$("#block").css("background-color", "yellow");
قبل از بارگیری خط html اجرا می شود:
اگر نیاز به اجرای یک کد یا تابع فقط پس از بارگذاری کامل سند داشته باشیم، چه؟
من می خواهم در مورد سه راه صحبت کنم که چگونه می توان این کار را انجام داد.
1 راه. استفاده از کتابخانه jquery
اغلب من خودم از آن استفاده می کنم، ساده ترین و راحت ترین راه حل، اما نیاز به اتصال کتابخانه Jquery دارد.
در اینجا نحوه تبدیل کد قبلی در صورت استفاده از روش زیر است.
2 راه. با عنصر body و ویژگی onload.
3 راه. با شی پنجره و ویژگی onload آن.
روشی را انتخاب کنید که به بهترین وجه با شرایط شما مطابقت دارد و آن را عملی کنید.