فراخوانی بیشتر از یک بار "window.onload"
301, MovedPermanently
http://stackoverflow.com/a/5305113/1460243 icon
با توجه به اینکه بهترین مکان برای load کردن کتابخانه‌های javascript  در انتهای صفحه می‌باشد (از جمله jquery.js )، چنانچه از کدهای jquery در میان صفحات استفاده نماییم، مطمئنا با خطا مواجه خواهیم شد.
راه کار اولیه که به ذهنم رسید قرار دادن کد‌ها در یک تابع جدید مانند کد زیر است :
function myfunc(){
    $('#test')....;
}
و سپس قرار دادن آن تابع در window.onload به صورت زیر
window.onload = myfunc;
اما چنانچه در صفحه بیشتر از یک بار این مقدار دهی صورت گیرد با خطا مواجه می‌شویم

و خلاصه اینکه در لینک برای این مسئله هم راه کار وجود دارد و آن :

window.addEventListener('load', myfunc1, false);
window.addEventListener('load', myfunc2, false);
...




فراخوانی بیشتر از یک بار "window.onload"
  • #
    ‫۱۱ سال و ۳ ماه قبل، دوشنبه ۱۰ تیر ۱۳۹۲، ساعت ۰۴:۰۷
    - اگر از MVC استفاده می‌کنید، در فایل layout
    ...
        اینجا اسکریپت‌های عمومی قرار گیرند قبل از پایان فایل
        @RenderSection("JavaScript", false)
    </body>
    </html>
    به کمک RenderSection کلیه اسکریپت‌های inline فقط در همین مکان فراخوانی آن قرار می‌گیرند. به این ترتیب در Viewها فقط کافی است یک section به نام JavaScript اضافه کرد تا در این مکان درج شود.
    - در ASP.NET Web forms هم می‌شود این نظم رو پدید آورد. از ContentPlaceHolder استفاده کنید. یکی در master page تعریف شود دیگری در وب فرم به ارث رسیده از آن برای قرار دادن اسکریپت‌های خاص همان صفحه.
        ....  سایر قسمت‌های فایل مستر پیج
        <asp:ContentPlaceHolder id='PageScriptPlaceHolder' runat='server'>
        </asp:ContentPlaceHolder>
    </body>
    حالا وب فرم شما فقط کافی است اسکریپت‌های خاص خودش را با ID فوق درج کنه
    <asp:Content ID='ScriptIncludes' runat='server'  ContentPlaceHolderID='PageScriptPlaceHolder'>
      اسکریپت‌های صفحه در اینجا
    </asp:Content>
    • #
      ‫۱۱ سال و ۳ ماه قبل، دوشنبه ۱۰ تیر ۱۳۹۲، ساعت ۰۴:۳۶
      ممنون مهندس، آخه من بعضی از کدها جاوااسکریپت رو توی Helper ایجاد کردم (اسپاگتی کد :) ) .
      • #
        ‫۱۱ سال و ۳ ماه قبل، دوشنبه ۱۰ تیر ۱۳۹۲، ساعت ۰۴:۴۲
        میشه این اسکریپت‌های پویا رو به این Contentها هم تزریق کرد (اگر وب فرم است). اگر MVC است درج آن ساده‌تر است و با Html.Raw درج می‌شود.