mmj-sys
2 سال پیش توسط mmj-sys مطرح شد
5 پاسخ

فرق کونسول مرورگر با فایل

سلام من یه کد جاوااسکریپت دارم که یه لیسنر داره فایلم به این صورته

document.getElementById("btn").addEventListener("click" , evented_func);

function get_input_func() {
    var Height = document.getElementById("Height").value;
    var Weight = document.getElementById("Weight").value;
    var inputs = {"Height" : Height , "Weight":Weight};
    return inputs;
}

function show_func(BMI) {
    document.getElementById("res").textContent = BMI;
}

function claculate_func(vals) {
         var Height = vals["Height"];
         var Weight = vals["Height"];
         var Height_2 = Height * Height;
         var result = Weight / Height_2;
         return result;
}

function evented_func() {
    var inputs = get_input_func();
    console.log(inputs);
    var BMI = claculate_func(inputs);
    show_func(BMI);
}

کافیه همون خط لیسنر رو توی کنسول کپی کنم
کار میکنه مث ساعت
ارور اولیه هم اینه

Uncaught TypeError: document.getElementById(...) is null

الان مشکل همینجاست
اگر تازه کارم ببخشید .


ثبت پرسش جدید
محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 2 سال پیش آپدیت شد
2

سلام
نگاه کنید وقتی کد جاوااسکریپت شما اجرا میشه باید به اون باکس دسترسی داشته باشه
اگه فایل js تون رو در آخر صفحه لود کردید که هیچی اما اگه بالا صفحه داخل تگ head اضافه کردید به این مشکل می خورید
برای حل این مشکل توابعتون رو باید داخل document.ready قرار بدید یا اینکه کد های جاوااسکریپت رو در آخر صفحه لود بکنید
داکیومنت ریدی رو من پیشنهاد نمی دم چون یکم سخت تره و ممکنه یکسری ارور داشته باشید و زیاد برای تازه کارا خوب نیست

اگه بخوام مفهومی توضیح بدم چی میشه
اینه که کد ها از بالا خونده می شوند برای همین جاوااسکریپت هاتون اجرا میشن و می بینن که هنوز باکس تو صفحه باز نشده و ارور میده اما کنسول چون بعد از تکمیل شدن لودینگ صفحه کداتون رو اجرا می کنه باکس وجود داره و اروری بر نمی گردونه

سعی کردم ساده توضیح بدم دیگه😄


عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 2 سال پیش مطرح شد
0

میگه btn رو پیدا نکردم
من نفهمیدم توی کنسول درست اجرا نمیشه یا در کل کار نمیکنه؟


عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 2 سال پیش مطرح شد
0

و محض اطلاعتون خط 16 رو مثل خط 15 vals["Height"] گذاشتین


:)
تخصص : اندروید - تازه کار
@ERR 2 سال پیش آپدیت شد
0

با درود
شما احتمالا getElementById("btn") رو قبل از اینکه btn ساخته شده باشه فرخانی کردید و این متد نیز مقدار null برگشت داده که به خاطر اینه که همچین دکمه ای وجود ندارد
توی کنسول کد html شما اجرا شده و این دکمه ساخته شده و به همین دلیل خطا نمیگیره


محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 2 سال پیش آپدیت شد
2

سلام
نگاه کنید وقتی کد جاوااسکریپت شما اجرا میشه باید به اون باکس دسترسی داشته باشه
اگه فایل js تون رو در آخر صفحه لود کردید که هیچی اما اگه بالا صفحه داخل تگ head اضافه کردید به این مشکل می خورید
برای حل این مشکل توابعتون رو باید داخل document.ready قرار بدید یا اینکه کد های جاوااسکریپت رو در آخر صفحه لود بکنید
داکیومنت ریدی رو من پیشنهاد نمی دم چون یکم سخت تره و ممکنه یکسری ارور داشته باشید و زیاد برای تازه کارا خوب نیست

اگه بخوام مفهومی توضیح بدم چی میشه
اینه که کد ها از بالا خونده می شوند برای همین جاوااسکریپت هاتون اجرا میشن و می بینن که هنوز باکس تو صفحه باز نشده و ارور میده اما کنسول چون بعد از تکمیل شدن لودینگ صفحه کداتون رو اجرا می کنه باکس وجود داره و اروری بر نمی گردونه

سعی کردم ساده توضیح بدم دیگه😄


mmj-sys
تخصص : داش متخصص چیه من پروفسورم .
@mmj.sys 2 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام