View Full Version : سوال: خروجی در جاوا اسکریپت
karim orooji
پنج شنبه 07 آبان 1388, 16:07 عصر
با سلام
من در ویژوال استودیو در فرم جاول اسکریپتش مثلا این کد رو نوشتم که از کاربر 10 تا عدد گرفته و مجموع این 10 عدد رو قراره نمایش بده در صفحه interet explorer اما نمیدونم چطور خروجیشو روی صفحه نمایش بدم منظورم جمع مقادیر اعداد 1 تا 10 رو میگم
ممنون میشم کمکم کنین
m.hamidreza
پنج شنبه 07 آبان 1388, 18:15 عصر
تابع شما 10 تا عدد رو میگیره و مجموعشون رو return میکنه. شما ابتدا باید مشخص کنید که عدد بدست آمده رو به چه صورت و کجا میخواین نمایش بدین. مثلا ممکنه کاربر این 10 تا عدد رو وارد کنه و پس از کلیک روی یه دکمه خروجی در یه تگ h1 ای نمایش داده بشه. بعبارت دیگه شما باید رویدادی که باعث اجرای تابع میشه رو بدونی چیه؛ تابع رو فراخوانی کنی و در نهایت نتیجه رو در جایی که مد نظرت هست نمایش بدی. با توجه به مثالی که زدم شما در رویداد OnClientClick باتن 10 مقدار رو به تابع پاس میدی و اونو فراخوانی میکنی در این تابع هم میتونی محل نمایش عدد خروجی رو بهش نسبت بدی:
.
.
document.getElementById("myH1").innerText=sum;
که در اون sum متغیری هست که جمع 10 عدد رو توش ریختی و myH1 آی دی تگ h1ای هست که میخوای مجموع اعداد رو درش نمایش بدی.
اون فایل جاوااسکریپت رو هم باید به تگ head فرمتون در VS لینک کنید.
موفق باشید.
karim orooji
پنج شنبه 07 آبان 1388, 18:27 عصر
با سلام به دوست عزیز
این کد برنامه ای که نوشتم اما بازم اجرا نمیشه
var sum=0,b,i;
for(i=1;i<=10;i++)
a=prompt("adad"," ")
{
sum += a;
document.getElementById("myH1").innerText=sum;
}
emad_67
پنج شنبه 07 آبان 1388, 20:30 عصر
با سلام به دوست عزیز
این کد برنامه ای که نوشتم اما بازم اجرا نمیشهکدت رو اشتباه نوشتی، یعنی اصلا بلاک for غلطه.
به این شکل بنویس:
<script type="text/javascript" defer="defer">
var sum=0,b,i;
for(i=1;i<=10;i++)
{
a=prompt("adad"," ")
sum += parseInt(a);
}
if(navigator.userAgent.indexOf("MSIE")>0)
document.getElementById("myH1").innerText=sum;
else
document.getElementById("myH1").textContent=sum;
</script>
</head>
<body>
<div id="myH1"></div>
</body>
مقداری که از prompt خونده میشه به صورت رشته هست که اول باید تبدیل بشه به عدد.
خصوصیت innerText هم در firefox پشتیانی نمیشه، به جای اون باید از textContent استفاده کرد. بنابراین یه شرط برای تشخیص نوع مرورگر قرار دادم. در مورد مروگر های دیگه دقیقا اطلاع ندارم.
karim orooji
پنج شنبه 07 آبان 1388, 21:53 عصر
ممنون دوست عزیز
میشه در مورد این قسمت از کدها توضیحاتی بدی کنجکاو شدم میخوام بدونم چیکار میکنه
if(navigator.userAgent.indexOf("MSIE")>0)
document.getElementById("myH1").innerText=sum;
else
document.getElementById("myH1").textContent=sum;
<div id="myH1"></div>
sum += parseInt(a);
type="text/javascript" defer="defer">
این کد جدول ضربه چرا نمایش نمیده
var i,j,a;
for(i=0;i<=10;i++)
{
for(j=0;j<=i;j++)
a=i*j;
}
در کل خولسته باشیم خروجی یه کد جاوا اسکریپتو در ie نمایش بدم باید چیکار کنم؟
emad_67
جمعه 08 آبان 1388, 11:54 صبح
if(navigator.userAgent.indexOf("MSIE")>0)
document.getElementById("myH1").innerText=sum;
else
document.getElementById("myH1").textContent=sum;navigator آبجکتی هست که اصلاعاتی در مورد مروگر کاربر رو در اختیار قرار میده. خصوصیت userAgent از این آبجکت نوع مروگر رو مشخص می کنه و مقدار برگشتی اون یک string هست. در شرط بالا هم چک کردم که اگر این مقدار بازگشتی شامل رشته ی "MSIE" بود (یعنی اگر مروگر کاربر internet explorer بود) با استفاده از خصوصیت innerText مقدار sum رو به div منتقل کنه، در غیر این صورت از textContent استفاده کنه. البته فرض رو بر این گذاشتم که به غیر از ie از ff استفاده شده باشه.
<div id="myH1"></div>کار خاصی نکردم، یک div با آی دی myH1 تعریف کردم. اگر آشنایی نداری باید به کتاب های html مراجعه کنی.
sum += parseInt(a);مقداری که توسط prompt خونده میشه از نوع string هست. شما باید اول اونو توسط تابع parseInt به عدد تبدیل کنی و بعد با sum جمع کنیش.
type="text/javascript" defer="defer">در مورد defer اینجا رو ببین:
http://barnamenevis.org/forum/showthread.php?t=172247
در کل خولسته باشیم خروجی یه کد جاوا اسکریپتو در ie نمایش بدم باید چیکار کنم؟ در مثالی که زدم همین کار رو کردم دیگه، شما باید خروجی رو داخل یک المان قرار بدی یا alert بدی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.