تبليغاتX
آموزش زبان های طراحی وب

آموزش زبان های طراحی وب

آموزش زبان های طراحی وب

آموزش کار با استایل (CSS)

آموزش کار با استایل (CSS)
CSS یا همان Cascading Style Sheet روشی است برای قالب بندی و طراحی اجزای صفحه از قبیل متن، تصویر، زمینه صفحه، کادرها و تقریباً هر چیزی که در طراحی صفحه استفاده می شود بدون استفاده از کدهای HTML. از طریق این استایل شیتها می توانیم از دوباره نویسی کدهای HTML که باعث مشکل شدن کد نویسی و همچنین کند شدن سرعت بارگذاری صفحه در اینترنت می شود جلوگیری کنیم. برای مثال می توانیم یک بار نوع فونت مورد استفاده در یک صفحه را تعیین کنیم و دیگر مجبور نباشیم کد مربوط به فونت را در صفحه به کار ببریم. همچنین می توانیم از این ابزار قدرتمند در مواردی به جای جاوا اسکرپت نیز استفاده کنیم و چون مشکلات جاوا اسکرپت مثلاً غیر فعال بودن جاوا اسکرپت در مرورگر را ندارد با خیالی آسوده تر می توانیم از آن استفاده کنیم.
CSS هم مانند جاوا اسکرپت این امکان را به ما می دهد که از یک فایل استایل خارجی برای تعیین خواص بخشهای مختلف صفحه های یک سایت استفاده کنیم. در این صورت می توانیم ظاهر همه صفحه ها را با ایجاد یک تغییر کوچک در فایل استایل خارجی تغییر دهیم. مثلاً فرض کنید که رنگ متن همچنین نوع فونت متن صفحه هایمان را در یک فایل استایل تعیین کرده ایم و از آن در طراحی چندین صفحه استفاده کرده ایم، حالا اگر بخواهیم رنگ متن همه این صفحات را تغییر دهیم تنها کافی است تا رنگ متن را در همان فایل استایل تغییر دهیم و نیازی به تغییر دادن صفحات نداریم.
در این قسمت به معرفی قابلیتهای مختلف CSS خواهیم پرداخت . چون این قسمت در سایت ما به تازگی راه اندازی شده است هنوز کامل نشده و به مرور زمان سعی می کنیم آنرا کاملتر کنیم.
اگر انتقاد یا پیشنهادی برای بهتر شدن این قسمت دارید می توانید از طریق «فرم تماس با ما» ما را مطلع کنیم. ما نیز خوشحال می شویم از نظرات شما در جهت بهبود این بخش استفاده کنیم.



 

+ نوشته شده در  یکشنبه بیست و پنجم اسفند 1387ساعت 13:46  توسط راهنما  | 

جلسه بیست و 4چهار

كاش در دهكده عشـق فراواني بودتوي بـازار صداقت، كمي ارزاني بود

كاش اگر گاه، كمي لطف به هم مي‌كرديم
مختصـــر بـود ولــي ســاده و پنهانـي بــود
سلام
"اين وبلاگ را براي راه افتادن چندتا از دوستان، باز كردم. هم تشويقي براي شروع به كار آنها باشد و هم مرجعي براي جواب سوالهايشان. قصدم اين نبود كه زبان جاوا اسكريپت را به طور كامل، تدريس كنم. با وجود سايتهاي معتبر و تخصصي خارجي و ايراني، جايي براي چنين ادعايي نيست. ولي گاهي اوقات، اثري كه يك درس خصوصي و چند نفره دارد، يك كلاس عمومي، نخواهد داشت."
قريب يكسال پيش (پنجشنبه 19 آذر 1383)، با اين جملات، وبلاگ "آموزش جاوا اسكريپت" آغاز شد. آن روز به خاطر يك دوست خوب، نوشتم؛ و امروز كه آن دوست در بين ما نيست، در ميان شما دوستان خوب هستم.
الان كه به نوشته‌هاي آن روز نگاه مي‌كنم، از اينكه به هدفم نزديك شدم، خوشحالم؛ و خوشحالم كه اين درس، نيمه كاره نماند و به پايان رسيد؛ هرچند كه با مشكلاتي روبرو شد. تعداد دروسي كه در ذهنم بود، حدود 20 جلسه بود و خوشبختانه همينطور هم شد. از خدا خواستم كه از اين امتحان، رو سفيد بيرون بيايم و اميدوارم كه اينطور شده باشد. خدا را به خاطر فرصتي كه به من داد سپاسگزارم.
سرانجام كار، تو خوشند باشي و من رستگار
بعضي از دوستان، درس را جدي گرفتند و به نتيجه رسيدند، و بعضي به خاطر مشكلات يا سست عهدي، رفيق نيمه راه بودند. براي همه آنها آرزوي سلامت و موفقيت مي‌كنم.
از دوستاني كه مرا همراهي كرده و ابراز لطف نمودند، تشكر مي‌كنم.
از دوستاني كه به هر دليلي نتوانستم پاسخ نامه و سوالهايشان را بدهم عذرخواهي مي‌كنم. احتمال اينكه نامه‌يتان به دستم نرسيده باشد، يا پاسخ من، به دست شما، زياد است.
اگر در نوشتن درسها يا پاسخ به سوالها، تاخير نموده، و باعث تلف شدن وقتتان شدم، معذرت مي‌خواهم.
از دوستان خوبم ساحل، هستي، ايراني، mreza، الهام، رسول، ليلا، آشيل، جعفر، بهروز، مجتبي، پژمان قدرتي، حامد، وحيد، ناصر، رضا، حبیب میرزاي، کیومرث، هاني، ramyar، آزاده، هليا، Nice، محمد، افشين، سيد اكبر حسيني، اميررضا، سيد محسن هاشمي، علي، هنگامه، و ناشناس عزيز، تشكر فراوان كرده و همه را به خداي مهربان مي‌سپارم.
اين روزا بايد هممون براي هم سايه باشيم
شبـا يكـم دلـواپس كـودك همـسايه باشيم
اگـه بـه هـم كمـك كنيـم زنـدگـي ديـدنـي ميـشه
بر سر پيمان مي‌مونند دوستاي خوب تا هميشه
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:15  توسط راهنما  | 

جلسه بیست وسه23

حركت 2
سلام
فرارسيدن ماه مبارك رمضان را به شما دوستان عزيز! تبريك مي‌گويم. اميدوارم كه اين ماه براي همه، پر از خير و بركت باشد.
تغييرات:
- بحث "حركت دادن اشيا" به اين جلسه اضافه شده است. (جمعه 15 مهر)
بحث ما حركت است. در جلسه قبل، مشاهده كرديد كه حركت پنجره به چه راحتي انجام پذير است. در اين ساعت، خواهي ديد كه حركت اشيا به دنبال اشاره‌گر موس نيز به سهولت امكان دارد. 
• تعقيب اشاره‌گر
• براي اين عمليات، ابتدا موقعيت اشاره‌گر را به دست مي‌آوريم. همانطور كه در تمرين جلسه قبل، اجرا شد، با اين دو دستور (event.clientY - event.clientX) مي‌شود موقعيت اشاره‌گر را گرفت.
نمونه:

موقعيت موس از بالا - clientY: 

موقعيت موس از چپ - clientX: 

• حالا بايد چيزي را كه مي‌خواهيد به دنبال اشاره‌گر، حركت كند مشخص نماييد. اين شي مي‌تواند از لحاظ ظاهر، متن يا عكس يا هر چيز ديگر، و از لحاظ محتوا، ثابت يا متغير باشد.
- سه متن بنويسيد؛ يك متن براي حركت عمودي، و يك متن براي حركت افقي، و يكي هم براي حركت كامل.
- هر كدام را داخل يك لايه قرار دهيد. 
- لايه‌ها را به اين ترتيب نامگذاري نماييد: (div1 - divY - divX)
- استيل آنها را به اين صورت تعريف كنيد: (style=position: absolute). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.
• كد HTML:

متن


عمودي


افقي


• كد JavaScript:
function cursorPos() // تابع
{
// حركت عمودي و افقي
div1.style.top = event.clientY;
div1.style.left = event.clientX;
// حركت عمودي
divY.style.top = event.clientY;
// حركت افقي
divX.style.left = event.clientX;
}
document.onmousemove=cursorPos;
براي ديدن نمونه، اينجا كليك كنيد.

• حركت دادن اشياء
در اين مبحث، خواهيم آموخت كه چگونه به وسيله موس، اشيا را جابجا كنيم؛ همانگونه كه در ويندوز به راحتي انجام مي‌شود.
• مراحل عمليات: 
- ساختن شي مورد نظر
- به دست آوردن موقعيت اشاره‌گر
- به دست آوردن موقعيت شي مورد نظر
- تعريف كردن رويداد كليك و كشيدن
• شيئي كه براي اين كار در نظر گرفته‌ام، يك جدول است كه شبيه كادرهاي محاوره‌اي در ويندوز مي‌باشد. 
- اين جدول، داراي دو سلول است. سلول اول، براي عنوان كادر و محل كشيدن و جابجايي، و سلول پايين، محل نوشته محتوي است.
- داخل سلول اول، يك لايه (div) قرار داده‌ام به نام (moveMe1). جدول را هم (moveMe)، نامگذاري نموده‌ام.
- استيل جدول را به اين صورت تعريف كنيد: (style=position: relative). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.
• كد HTML:








 
 

• كد JavaScript:
mouseover = true
function coordinates()
{
if (!moveMe)
{
return
}
if (event.srcElement.id == "moveMe1")
{
mouseover = true
// موقعيت جدول
pleft = moveMe.style.pixelLeft
ptop = moveMe.style.pixelTop
// موقعيت اشاره‌گر
xcoor = event.clientX
ycoor = event.clientY
document.onmousemove = funmove
}
}
function funmove()
{
if (mouseover && event.button == 1) // اگر كليك چپ شد
{
moveMe.style.pixelLeft = pleft + event.clientX-xcoor
moveMe.style.pixelTop = ptop + event.clientY-ycoor
moveMe1.style.cursor = "move"; // تغيير شكل اشاره‌گر
moveMe.style.filter = "alpha(opacity=50)"; // استفاده از فيلتر آلفا
return false
}
}
function mouseup()
{
moveMe1.style.cursor = ""; // شكل عادي اشاره‌گر
moveMe.style.filter = "alpha(opacity=100)"; // از كار انداختن فيلتر آلفا
mouseover = false
}
document.onmousedown=coordinates
document.onmouseup=mouseup

• شرح كد:
- moveMe1.style.cursor = move = در جلسه 17، خوانديم كه شكل اشاره‌گر، قابل تغيير است. در اينجا، شكل "حركت" را انتخاب مي‌كنيم.
- event.button == 1 = در جلسه 17، ديده شد كه كد كليك چپ، 1 است. با به دست آوردن اين كد، مي‌فهميم كه موس، در حالت كليك باقي مانده؛ يعني همان كشيدن به وسيله موس.
- moveMe.style.filter = "alpha(opacity=50)" = به وسيله اين كد، كه از زبان HTML است، به جدول خود، فيلتر آلفا، يا همان كمرنگ شدن در حالت جابجايي مي‌دهيم.
براي ديدن نمونه، اينجا كليك كنيد.

همانطور كه مشاهده كرديد، اين كار زيبا به سادگي امكان پذير است. شما هم مي‌توانيد در پايگاه و حتي وبلاگ خود، از كادرهاي متحرك استفاده كنيد. كادرهايي كه كاربر مي‌تواند آنها را جابجا نمايد. با به كارگيري كمي ذوق و سليقه، كادرهاي زيباتر، طبيعي‌تر و داراي قابليت بيشتري - مانند امكان كمينه (ميني مايز) كردن و يا بستن كادر - خواهيد ساخت.
اميدوارم كه اين درس برايتان مفيد بوده و از آن لذت ببريد.
به اميد ديدار
خدانگهدار

+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:14  توسط راهنما  | 

جلسه بیست ودو 22

حركت 2سلام
فرارسيدن ماه مبارك رمضان را به شما دوستان عزيز! تبريك مي‌گويم. اميدوارم كه اين ماه براي همه، پر از خير و بركت باشد.
تغييرات:
- بحث "حركت دادن اشيا" به اين جلسه اضافه شده است. (جمعه 15 مهر)
بحث ما حركت است. در جلسه قبل، مشاهده كرديد كه حركت پنجره به چه راحتي انجام پذير است. در اين ساعت، خواهي ديد كه حركت اشيا به دنبال اشاره‌گر موس نيز به سهولت امكان دارد. 
• تعقيب اشاره‌گر
• براي اين عمليات، ابتدا موقعيت اشاره‌گر را به دست مي‌آوريم. همانطور كه در تمرين جلسه قبل، اجرا شد، با اين دو دستور (event.clientY - event.clientX) مي‌شود موقعيت اشاره‌گر را گرفت.
نمونه:

موقعيت موس از بالا - clientY: 

موقعيت موس از چپ - clientX: 

• حالا بايد چيزي را كه مي‌خواهيد به دنبال اشاره‌گر، حركت كند مشخص نماييد. اين شي مي‌تواند از لحاظ ظاهر، متن يا عكس يا هر چيز ديگر، و از لحاظ محتوا، ثابت يا متغير باشد.
- سه متن بنويسيد؛ يك متن براي حركت عمودي، و يك متن براي حركت افقي، و يكي هم براي حركت كامل.
- هر كدام را داخل يك لايه قرار دهيد. 
- لايه‌ها را به اين ترتيب نامگذاري نماييد: (div1 - divY - divX)
- استيل آنها را به اين صورت تعريف كنيد: (style=position: absolute). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.
• كد HTML:

متن


عمودي


افقي


• كد JavaScript:
function cursorPos() // تابع
{
// حركت عمودي و افقي
div1.style.top = event.clientY;
div1.style.left = event.clientX;
// حركت عمودي
divY.style.top = event.clientY;
// حركت افقي
divX.style.left = event.clientX;
}
document.onmousemove=cursorPos;
براي ديدن نمونه، اينجا كليك كنيد.

• حركت دادن اشياء
در اين مبحث، خواهيم آموخت كه چگونه به وسيله موس، اشيا را جابجا كنيم؛ همانگونه كه در ويندوز به راحتي انجام مي‌شود.
• مراحل عمليات: 
- ساختن شي مورد نظر
- به دست آوردن موقعيت اشاره‌گر
- به دست آوردن موقعيت شي مورد نظر
- تعريف كردن رويداد كليك و كشيدن
• شيئي كه براي اين كار در نظر گرفته‌ام، يك جدول است كه شبيه كادرهاي محاوره‌اي در ويندوز مي‌باشد. 
- اين جدول، داراي دو سلول است. سلول اول، براي عنوان كادر و محل كشيدن و جابجايي، و سلول پايين، محل نوشته محتوي است.
- داخل سلول اول، يك لايه (div) قرار داده‌ام به نام (moveMe1). جدول را هم (moveMe)، نامگذاري نموده‌ام.
- استيل جدول را به اين صورت تعريف كنيد: (style=position: relative). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.
• كد HTML:








 
 

• كد JavaScript:
mouseover = true
function coordinates()
{
if (!moveMe)
{
return
}
if (event.srcElement.id == "moveMe1")
{
mouseover = true
// موقعيت جدول
pleft = moveMe.style.pixelLeft
ptop = moveMe.style.pixelTop
// موقعيت اشاره‌گر
xcoor = event.clientX
ycoor = event.clientY
document.onmousemove = funmove
}
}
function funmove()
{
if (mouseover && event.button == 1) // اگر كليك چپ شد
{
moveMe.style.pixelLeft = pleft + event.clientX-xcoor
moveMe.style.pixelTop = ptop + event.clientY-ycoor
moveMe1.style.cursor = "move"; // تغيير شكل اشاره‌گر
moveMe.style.filter = "alpha(opacity=50)"; // استفاده از فيلتر آلفا
return false
}
}
function mouseup()
{
moveMe1.style.cursor = ""; // شكل عادي اشاره‌گر
moveMe.style.filter = "alpha(opacity=100)"; // از كار انداختن فيلتر آلفا
mouseover = false
}
document.onmousedown=coordinates
document.onmouseup=mouseup

• شرح كد:
- moveMe1.style.cursor = move = در جلسه 17، خوانديم كه شكل اشاره‌گر، قابل تغيير است. در اينجا، شكل "حركت" را انتخاب مي‌كنيم.
- event.button == 1 = در جلسه 17، ديده شد كه كد كليك چپ، 1 است. با به دست آوردن اين كد، مي‌فهميم كه موس، در حالت كليك باقي مانده؛ يعني همان كشيدن به وسيله موس.
- moveMe.style.filter = "alpha(opacity=50)" = به وسيله اين كد، كه از زبان HTML است، به جدول خود، فيلتر آلفا، يا همان كمرنگ شدن در حالت جابجايي مي‌دهيم.
براي ديدن نمونه، اينجا كليك كنيد.

همانطور كه مشاهده كرديد، اين كار زيبا به سادگي امكان پذير است. شما هم مي‌توانيد در پايگاه و حتي وبلاگ خود، از كادرهاي متحرك استفاده كنيد. كادرهايي كه كاربر مي‌تواند آنها را جابجا نمايد. با به كارگيري كمي ذوق و سليقه، كادرهاي زيباتر، طبيعي‌تر و داراي قابليت بيشتري - مانند امكان كمينه (ميني مايز) كردن و يا بستن كادر - خواهيد ساخت.
اميدوارم كه اين درس برايتان مفيد بوده و از آن لذت ببريد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:12  توسط راهنما  | 

جلسه بیست ویک 21

حركت 1حركت پنجره
تغييرات:
به همين جلسه مطالبي (حركت و تغيير اندازه پنجره) اضافه شد. (شنبه 5 شهريور)
سلام
مفهوم حركت در رايانه و به خصوص وب، بحث جذاب و كاربردي است كه هم باعث زيبايي صفحات مي‌شود، هم توجه بيننده را به خود جلب مي‌كند و هم در بهتر ارايه كردن مطالب، دست ما را باز مي‌گذارد.
براي دو مورد اول، مثالهاي فراواني در پايگاه و وبلاگها وجود دارد. مثل اشكال و نوشته‌هايي كه به دنبال موس حركت مي‌كنند؛ يا ستاره‌هايي كه در صفحه، پخش مي‌شوند؛ يا نوشته‌هايي كه در نوار عنوان يا نوار وضعيت، در حال حركت هستند.
همانطور كه بهره‌برداري به جا از اين ابزار، باعث زيبايي و كارايي مي‌شود، استفاده بي‌مورد يا زيادي - كه متاسفانه در بعضي از وبلاگها مشاهده مي‌شود - باعث اذيت و خسته شدن بيننده خواهد شد؛ مخصوصا در دو نوار عنوان و وضعيت. به ياد داشته باشيد كه اين دو مكان، ساخته شده‌اند براي كار مهمتري؛ نه براي بازي و حركت بي‌مورد نوشته‌ها. 
مفهوم حركت
حركت، نسبي است. كم و بيش با اين جمله آشنا هستيد. نظريه "نسبيت حركت"، مي‌گويد كه حركت شي، نسبت به اطراف او سنجيده مي‌شود. تصور كنيد در قطار هستيد. شما نسبت به اشيا بيرون از قطار، در حال حركت هستيد. از بعضي دور مي‌شويد و به بعضي نزديك؛ كه اين بستگي به "جهت حركت" شما دارد. اما نسبت به خود قطار، حركتي نداريد؛ مگر اينكه در همان قطار، شروع به راه رفتن كنيد.
كره زمين براي ما ثابت و بي‌حركت است؛ اما نسبت به كهكشان، جـِـرم كوچكي است در حال حركت. اشياء داخل صفحه وب نيز همين حالت را دارند؛ كه بزرگترين و مهمترين آن، خود پنجره (window) است.
انواع حركت
به يك صفحه، خوب نگاه كنيد. به نظر شما چه چيزهايي مي‌توانند حركت كنند؟ آيا همه حركتها، از يك نوع است؟ عامل اصلي حركت چيست؟
ظاهرا مي‌شود گفت هر چيزي كه در صفحه وجود دارد، قابل حركت است. ظاهرا حركتها از يك نوع نيستند؛ چون "نيروي محركه" آنها تفاوت دارد. چه چيز باعث حركت اشاره‌گر موس مي‌شود؟ خود پنجره قابل حركت است. مي‌توانيد با كليك بر روي نوار عنوان، آنرا گرفته و به هر نقطه كه تمايل داريد بكشيد. اگر تغيير اندازه را هم نوعي حركت بدانيم، با نوع متفاوتي از حركت روبرو خواهيم شد.
قالب حركت
در رايانه، قالبي وجود دارد كه موقعيت اشيا، نسبت به آن سنجيده مي‌شود. بالا و پايين، چپ و راست. اين چهار جهت اصلي، قالب ما هستند و موقعيت يك آيكون، نوشته، عكس يا پنجره، نسبت به آنها سنجيده مي‌شود. چرا مي‌گوييم اين پنجره از آن پنجره بالاتر است؟ چون نسبت به بالا، نزديكتر است.
اگر اين بخش را هم خوب درك كرده باشيد، متوجه مي‌شويد كه براي شروع كار، لازم است "موقعيت جغرافيايي" يا همان "طول و عرض جغرافيايي" را به دست بياوريم. خوشبختانه در زبان جاوا اسكريپت، دستورات لازم براي به دست آوردن آن، وجود دارد.
از چهار جهت اصلي، دو جهت، معيار هستند؛ بالا و چپ. البته ما فارسي‌ زبانها، چون از راست به چپ مي‌نويسيم و آرايش صفحات ما از راست به چپ است، بهتر است تا آنجا كه ممكن است، بالا و راست را معيار خود قرار دهيم.
طول جغرافيايي - فاصله از بالا - را با y (ايگرگ)،  و عرض جغرافيايي - فاصله از چپ - را با x (ايكس) نشان مي‌دهند.
جدولي را تهيه كرده‌ام كه راه به دست آوردن اين اندازه‌ها را به شما نشان مي‌دهد.
براي ديدن جدول، اينجا كليك كنيد.

• حركت پنجره
براي حركت پنجره، دو دستور وجود دارد.
1- window.moveBy (x, y)
با اين دستور، مي‌توان پنجره را يكباره به منطقه‌اي كه با عدد مشخص (x, y) مي‌شود، منتقل كرد.
2- window.moveTo (x, y)
اين دستور مانند دستور قبل عمل مي‌كند؛ با اين تفاوت كه اگر آنرا در يك حلقه قرار دهيم، به آهستگي پنجره را حركت مي‌دهد.
كد: كافي است اين كد را داخل يك اسكريپت قرار داده و صفحه را باز كنيد.
for(a = 1; a <= 250; a++) {window.moveTo (250, a)};
• تغيير اندازه پنجره
براي تغيير اندازه پنجره، دو دستور وجود دارد.
1- window.resizeTo (x, y)
با اين دستور مي‌توان اندازه پنجره را تغيير داد و اگر آنرا در يك حلقه قرار دهيم، به آهستگي اندازه پنجره را تغيير مي‌دهد.
كد:
for(a = 1; a <= 500; a++) {window.resizeTo (100, a)};
for(b = 1; b <= 500; b++) {window.resizeTo (b, 500)};
2- window.resizeBy (x, y)
اين دستور هم براي تغيير اندازه است؛ اما به دقت و قدرت دستور قبلي نيست.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:11  توسط راهنما  | 

جلسه 20 بیست

كتابخانه وبسلام
تغييرات:
- به كتابخانه وب، جستجو اضافه شد (يكشنبه 16 مرداد)
- به جلسه قبل، بحث "اشاره‌گر" اضافه شد. (چهارشنبه 12 مرداد)
خدمت همه دوستان و تازه واردان عزيز، سلام و خسته نباشيد، و خوش آمد عرض مي‌كنم. از كساني كه از مطالب وبلاگ، خوششان آمده و ابراز لطف نموده‌اند تشكر مي‌كنم.
قرار بود اين جلسه را اختصاص دهم به معرفي چند نرم افزار تخصصي و مفيد، كه مسلما شما را در نوشتن و عيب‌يابي كدها، كمك مي‌كند. اما همانطور كه قبلا گفتم، آرزويم، يك بانك و مرجع عمومي و كامل است.
اين طرح بزرگ، يك مشكل بزرگ داشت، و آن كوچكي من است. هم اطلاعاتم محدود است، و هم اينكه هميشه در بين شما نيستم كه اين كار را انجام دهم. احتياج به همكاري علاقمندان بيشتر است. براي همين، بانكي را تهيه كردم كه باز است و هركسي مي‌تواند نرم‌افزاري را كه مي‌شناسد معرفي كند. نام اين بانك را "كتابخانه وب" گذاشتم كه لينكش در سمت چپ همين وبلاگ قرار دارد.
اختصاص به زباني ندارد. هرآنچه كه مربوط به طراحي و برنامه نويسي وب است. اين پروژه، به صورت آزمايشي راه‌اندازي شده است. البته اين به نظر قاصر و ناقص راهنماست. براي كامل شدن اين پروژه، احتياج به راهنمايي و نظر شماست.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:10  توسط راهنما  | 

جلسه 19 نوزده

موس و صفحه كليدسلام
تغييرات:
- در جلسه 16، بخش «معرفي نرم‌افزار» اضافه شد. (دوشنبه 30 خرداد)
موس و صفحه كليد، به عنوان گيرندههاي رايانه هستند كه به وسيله آنها مطالب را وارد مي‌كنيم. مثلا براي نوشتن اين متن، از صفحه كليد استفاده كرده‌ام. حرف ت را فشردم، تا در اين صفحه، نوشته شد. البته ميان فشردن كليد و نوشته شدن در صفحه - كه بلافاصله انجام مي‌شود - عملياتي انجام مي‌گردد كه از ديد ما پنهان است. 
هر كليد، يك كد عددي دارد كه با فشرده شدن، از صفحه كليد به بخش مربوطه در رايانه، فرستاده مي‌شود. آنجا بعد از پردازش، تبديل به حرف معادل آن كد شده، و در متن، نمايش داده مي‌شود. اگر اين روند را خوب درك كنيم، مي‌توانيم بدون استفاده از صفحه كليد، تايپ كنيم؛ فقط كافي است بدانيم كه دستورات لازم آن چيست.

استخراج كُد كليد (Key Code)
 • صفحه كليد
استخراج كُد كليد (Key Code)، كار راحتي است. در زبان جاوا اسكريپت، براي به دست آوردن آن، از اين دستور استفاده مي‌شود: «window.event.keyCode»
تمرين
برنامه‌اي بنويسيم كه كد هر كليد را در يك جعبه متن، نشان دهد.
//***صفحه كليد
function funKeyCode(){
  var key = window.event.keyCode;
  inCode.value = key;
}
document.onkeypress=funKeyCode; // تنظيم رويداد 
در قسمت بدنه، جعبه متني قرار دهيد كه محل نمايش كد باشد.


كد هر كليدي را كه فشار دهيد، اينجا نوشته مي‌شود: 

 • موس
موس نيز مانند صفحه كليد عمل مي‌كند؛ منتها داراي كليدهاي كمتري است. از اين كد «window.event.button» مي‌توانيد براي استخراج كد كليد موس، استفاده كنيد.
تمرين
برنامه‌اي بنويسيم كه كد هر كليد را در يك جعبه متن، نشان دهد.
//***كليك موس
function funClick() 
{
  if (document.all) 
  {
  if (window.event.button) 
  {
  inButton.value = window.event.button;
  return false;
  }
  }
}
document.onmousedown=funClick; // تنظيم رويداد 
در قسمت بدنه، جعبه متني قرار دهيد كه محل نمايش كد باشد.


كُد كليك موس :  
 • اشاره‌گر
اشاره‌گر (Cursor) - كه كاربران معمولا و به اشتباه، به آن موس هم مي‌گويند - همان شكلي است كه با حركت موس، در مانيتور، حركت مي‌كند و نمادي از انگشت و دست شماست براي اشاره به اشياء داخل صفحه.
تاريخ تولد اشاره‌گر و و موس، به ابتدايي‌ترين سيستم عامل ويندوز برمي‌گردد. قبل از آن، سيستم عامل داس بود و آن محيط سياه و مَخوف. نه اثري از رنگ بود، نه صوت و نه موس.
اشاره‌گر، داراي شكلهاي مختلفي است، و در حالات گوناگون، تغيير شكل مي‌دهد. مثلا گاهي به شكل ساعت شني، و گاهي به صورت يك فلش دو سر يا چهار سر، يا علامت سوال، تبديل مي‌شود.
اين تغيير شكلها، همه به دست تواناي شماي برنامه‌نويس، ميسّر مي‌شود و بس. خوشبختانه در وب نيز مي‌شود شكل دلخواه و مورد نياز به اشاره‌گر داد؛ ‌كافي است كه كد هر شكل را بنويسيد.
كـُد
قبل از نوشتن كد، توضيحي بايد عرض كنم، و آن اين است كه تغيير شكل اشاره‌گر، به صورت مستقيم به جاوا اسكريپت مربوط نمي‌شود؛ بلكه مربوط به مبحث استايل (Style) است؛ اما مي‌شود در جاوا از آن به دلخواه استفاده نمود.
استايل
استايل(Style)، تگي است مانند اسكريپيت (Script) كه درون سر (Head) نوشته مي‌شود. همانند جاوا، دو قسمت دارد: 1- نوشتن كد 2- فراخواني كد.
1- نوشتن كد. كد را داخل تگ استايل و درون سر، مي‌نويسيم.




تحليل كد: #Hand = نام كد، كه به دلخواه شماست. { } = كد، داخل اين علامت، نوشته مي‌شود. Cursor: hand = كد شكل اشاره‌گر، كه در اينجا به صورت دست است.
2- فراخواني كد. شي مورد نظر را، كه قرار است اشاره‌گر، به محض رفتن بر روي آن، تغيير شكل دهد، داخل بدنه مي‌نويسيم. آن شي، ممكن است يك عكس باشد يا يك متن يا چيز ديگر. در اين مثال، متني را در نظر گرفته‌ام كه درون تگ (Span) نوشته‌ام.


Auto

Crosshair

Default

Pointer

Hand

Move

e-resize

ne-resize

nw-resize

n-resize

se-resize

sw-resize

s-resize

w-resize

text

wait

help




ID = آي‌دي، همان نامي است كه در بالا نوشتيم؛ مانند (Hand).
نمونه عملي: اشاره‌گر خود را بر روي نوشته‌ها ببريد.
Auto
Crosshair
Default
Pointer
Hand
Move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
text
wait
help
اسم هر كد، نمايانگر حالت و نوع آن است. 
اشاره‌گر دست‌ساز
اينها، شكلهاي پيش فرض و موجود در ويندوز است. اما آيا مي‌شود شكل اشاره‌گر را آنگونه كه خودمان مي‌خواهيم، تغيير دهيم؛ يعني به شكلي كه خودمان طراحي كرديم؟ جواب اين سوال، مثبت است. كافي است يك اشاره‌گر - كه با پسوند cur. است - انتخاب كرده و آدرس آنرا بنويسيد. به اين صورت:
#Test {Cursor: url (test.cur); }

داخل پرانتز:
هر تغيير شكلي، بايد به خاطر نياز و مناسب با زمان و مكان باشد؛ وگرنه كار شايسته‌اي نيست.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:10  توسط راهنما  | 

جلسه 18 هجده

دستور زبان(آيين نگارش)
سلام
تعجب نكنيد. نه شما اشتباه آمديد، و نه من اشتباه نوشتم. موضوع، همان برنامه‌نويسي است. اين جلسه، اختصاص دارد به يك بحث مختصر و مفيد، كه از ظرافت بالايي برخورددار است؛ همان ظرافتي كه يك نويسنده، در نوشتن مقالات و داستانهاي خود، به خرج مي‌دهد. چه از لحاظ دسته بندي و مرتب بودن فصول و ابواب، و چه از لحاظ فهرست بندي، و چه از لحاظ مراعات قواعد دستوري و آيين نگارش.
بعد از اين همه تلاش و تمرين، لازم است بدانيم چگونه برنامه‌اي بنويسيم كه كمترين عيب و ايراد را داشته باشد. اين مبحث - جز موارد خاصي - در ميان زبانهاي برنامه‌نويسي، عمومي بوده و اختصاصي به جاوا اسكريپت ندارد.

1- غلط املايي
هنگام ملاحظه تمرينات دوستان، كه برايم ارسال كرده‌اند، متوجه اين نكته شدم كه قسمتي از اشتباه آنان، مربوط به غلط املايي مي‌شود. دستورات، مرتب و صحيح، نوشته شده بود، اما وجود يكي دو غلط املايي، مانع اجراي صحيح برنامه مي‌شد. مثلا 
در نوشتن window، دقت كنيد. ويندو، به صورت مفرد است. با نام سيستم عامل ويندوز، اشتباه نگيريد.
يا document و Mouse، جاي حروف o و u را اشتباه نكنيد. 
يا كلماتي كه از لحاظ املايي، نزديك هم هستند؛ مانند white (سفيد) with (با) While (حلقه).

2- كلمات رزرو شده و كليدي
خيلي از كلمات برنامه‌نويسي، كلمات رزرو شده هستند؛ يعني كلماتي كه از قبل در آن زبان، مورد استفاده قرار گرفته و داراي معناي خاصي هستند. از اين كلمات نمي‌شود به عنوان نام چيز ديگري، مانند تابع، استفاده كرد. در صورت عدم مراعات اين قاعده، برنامه شما، دچار مشكل مي‌شود.

3- كلمات كليدي
در نوشتن اين كلمات، خيلي دقت كنيد؛ مخصوصا در بزرگ و كوچك بودن حروف. اين قاعده كلي را در مورد جاوا اسكريپت، به يادگار داشته باشيد: همه متد و دستورها، در جاوا اسكريپت، با حرف كوچك، نوشته و شروع مي‌شود؛ الا موارد خاصي مانند Array. البته شايد يك كلمه تركيبي باشد؛ چون هميشه اينگونه نوشته مي‌شود new Array.

4- دستورات تركيبي
يعني دستوراتي كه از دو يا سه كلمه، تشكيل شده‌اند. مانند setTimeout, onMouseover كه از سه كلمه، تركيب شده‌اند. اولين كلمه اين دستورات، با حرف كوچك شروع شده، و دومين كلمه، با حرف بزرگ.

5- نام گذاري
در زبانهايي مانند ويژوال بيسيك، در نامگذاري اشياء، دقتي به خرج داده مي‌شود، كه در زبانهاي وب، نديده‌ام. به روشي كه عرض مي‌كنم توجه نموده و از آن استفاده كنيد. 
اسم بي‌مسمّي شنيده‌ايد؟ اسمي كه با شخص يا شيي ناميده شده، سنخيتي ندارد؛ مثل اينكه به يك سگ سياه، بگوييم سفيد برفي. اسمي كه براي اشيا يا دستورات خود، انتخاب مي‌كنيد، بايد جنس و كار آن را نشان دهد. 
مثلا مي‌خواهم تابعي بنويسم كه مطالب يك فرم را ارسال كند. نام دكمه ارسال را btnSubmit گذاشته، و نام تابع را funSubmit مي‌گذارم. 
btn = مخفف button (دكمه)
fun = مخفف function (تابع)
استفاده از مخفف نوع اشيا، در راهنمايي شما يا كساني كه از برنامه‌يتان بازديد مي‌كنند، بسيار كمك مي‌كند. مطمئن باشيد در آينده نه چندان دور، كه به برنامه خود مراجعه مي‌كنيد، حافظه، شما را ياري نخواهد نمود تا جزئيات را به خاطر بياوريد. آنگاه مجبور خواهيد شد مانند غريبه‌ها، از اول، كل برنامه را مطالعه كنيد.

6- مرتب نويسي
كدها بايد طوري نوشته شود كه خوانا و واضح باشد. شايد در برنامه‌هاي كوتاه، ضرورتي براي اين كار ديده نشود؛ اما در كدهاي عريض و طويل و پيچيده كه از دهها تابع ساخته شده‌اند، اين امر، ضروري است.
به ترتيب و چينش اين كدها دقت كنيد:

رعايت سر شاخه و زير مجموعه، در اين برنامه، نمايان است. يك مجموعه داريم كه تابع ما است. داخل آن تابع، يك شرط نوشته شده، و داخل آن شرط، چند دستور. با فاصله دادن آنها از كناره سمت چپ صفحه، آنها را از هم مجزا مي‌كنيم. به قرار گرفتن كُروشه‌ها، دقت كنيد. 

7- پايان دستور
در پايان هر دستور، از نقطه ويرگول (;) استفاده كنيد. هرچند در جاوا اسكريپت، اين كار ضرورتي ندارد؛ اما مراعات آن، ضرري ندارد. نه تنها پايان هر دستوري را مشخص مي‌كند، بلكه ما را در زبانهاي ديگر - مانند php كه اين كار لازم است - آماده مي‌كند.

معرفي نرم‌افزار
1- JavaScript Code Improver 1.00
اين برنامه، كدهاي نوشته شده جاوا اسكريپت را مرتب مي‌كند. همانطور كه در نكته 6 گفته شد، مرتب نويسي، باعث خوانا شدن كدها مي‌شود؛ اما هميشه از كدهاي خود استفاده نمي‌كنيم؛ بلكه در بسياري مواقع، از برنامه‌هاي آماده در اينترنت يا نوشته شده توسط دوستان خود، بهره‌برداري مي‌كنيم. در اين صورت، براي اينكه وقت زيادي را صرف مرتب كردن آنها نكنيد، بهتر است اين نرم‌افزار را به كار برده تا ظرف چند ثانيه، كدها را شُسته رُفته، به شما تحويل دهد.
اين برنامه را - كه به زبان فارسي ترجمه شده است - مي‌توانيد از اين آدرس، دريافت كنيد.
2- JavaScript Maker 2.7
با اين برنامه، مي‌توانيد كدهاي نوشته شده در htm را تبديل به js كنيد. به اين صورت كه تمام كدهاي شما، صحيح و بدون هيچگونه خطا، داخل يك تابع قرار مي‌گيرد. براي اجرا صفحه وب تبديل شده، كافي است آن تابع را صدا كنيد.
اين روش، در جايي به كار مي‌آيد كه فضايي براي ذخيره يك صفحه مستقل نداريد؛ مانند وبلاگ. در همين وبلاگ، بارها از اين روش، براي ارايه مثالها، استفاده شده است. » دانلود «
3- JavaScript Animator Express v1.10
با اين برنامه، مي‌توانيد به راحتي چند عكس را به صورت اسلايد، نمايش دهيد؛ البته با كمك زبان جاوا اسكريپت. براي آشنايي بيشتر و دريافت آن، به اين آدرس، مراجعه كنيد.
4- HTMLAsText v1.01
تبديل اچ‌تي‌ام‌ال(htm) به متن(txt). براي آشنايي بيشتر و دريافت آن، به اين آدرس، مراجعه كنيد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:9  توسط راهنما  | 

جلسه 17 هفده

فـُرمسلام

تغييرات:
- در همين جلسه، تغييراتي داده شده. (سه‌شنبه 20 ارديبهشت)
- در جلسه 7، تغييراتي داده شد. (پنجشنبه 25 فروردين)
اينبار به مقوله‌اي مي‌پردازيم كه هم كاربردي است و هم محلي براي تمرين دروس قبلي.
اگر به خاطر داشته باشيد، گفته شد كه قسمتي از برنامه نويسي، با داده‌هايي سر و كار دارد كه از كاربران، دريافت مي‌شود. دريافت اطلاعات، راه‌هاي مختلفي دارد كه مهمترين و معروفترين آنها، استفاده از فرم است. 
روزانه، فرمهاي مختلفي را پر مي‌كنيم. فرم ثبت نام در يك اداره، فرم باز كردن حساب در بانك، فرم ثبت نام در قرعه‌كشي، و ... . حتما در اينترنت هم با امثال اين فرمها، روبرو شده‌ايد. مثلا فرم عضويت در يك پايگاه، فرم ثبت يك ايميل در ياهو، فرم ارسال نامه، يا مثلا فرم نظرخواهي همين وبلاگ. آيا تا به حال، به طرز كار اين فرمها فكر كرده‌ايد؟ براي شما كه يك برنامه‌نويس هستيد، توجه به ساختمان و ماهيت فرم - و اشياء ديگر - لازم است.
«پايگاههاي وب، از فرمها براي منظورهاي مختلفي استفاده مي‌كنند. از قبيل: ثبت نام كردن كاربران، و يا ورود آنها به فضاهاي خاص وب (Login)، دريافت نظرات و فرمهاي نظرسنجي، و يا خريد و فروش آنلاين.» 

ساختمان فرم
هر فرمي، عمليات خود را - كه دريافت و ارسال داده باشد - در سه بخش، انجام مي‌دهد.
اسكلت و ظاهر: اين بخش - كه تشكليل شده از تعدادي جعبه متن (فيلد) و دكمه - توسط اچ‌تي‌ام‌ال ساخته مي‌شود. البته با نرم‌افزارهايي - كه قبلا نام برديم - اين كار، سريعتر و دقيقتر انجام مي‌شود. اين قسمت، مكان نوشتن اطلاعات، توسط كاربر است. 
خطاياب: اين بخش، تخصص جاوا اسكريپت است. يك حد مياني بين اچ‌تي‌ام‌ال و زبان سِروري. در اين قسمت، اطلاعات وارد شده توسط كاربر، كنترل مي‌شود. مثلا تمامي فيلدهايي كه بايد نوشته شود، پر شده يا نه؟ و آيا تركيب ايميلي كه وارد شده، درست است؟ در صورت وجود خطا، با اخطار به كاربر، مانع از ارسال مطالب به صورت ناقص يا نادرست مي‌شود. 
ارسال و ذخيره اطلاعات: اين قسمت، به عهده يك زبان سروري مانند asp و php است، و از حيطه مسؤوليت جاوا، خارج است. 
با توجه به اين تقسيم بندي، وظيفه جاوا، مشخص شده و دقيقا مي‌دانيم كه از او چه مي‌خواهيم.
داخل پرانتز:
با توجه به مطالبي كه گفته شد، بديهي است كه از بعضي از فرم‌ها نمي‌شود در وبلاگ استفاده كرد؛ يا حتي در سايتهايي كه فضايشان را به صورت رايگان، تهيه كرده‌اند؛ چون اينگونه فضاها، اجازه نوشتن و اجراي زبان سروري را نمي‌دهند.

اجزاي فرم
فرمها، بسته به نياز ما، مي‌توانند ساده يا پيچيده باشند. كمترين حد فرم، يك جعبه متن و يك دكمه ارسال (Submit) است؛ همانند فرم ثبت نامي كه در همين وبلاگ، قرار داده‌ام.

نام:  

دكمه Reset كه يك دكمه اختياري است، براي پاك كردن فرم است. اين ساده‌ترين شكل فرم است. 

اسكلت فرم (كد HTML)

نام: 




method = نوع ارسال اطلاعات را معين مي‌كند، كه دو نوع است: post, get. اين دو روش با تفاوتهايي، عمليات ارسال را انجام ‌مي‌دهند. روش پُست، عمومي‌تر است و از لحاظ امنيتي، برتري دارد. اگر متد را ننويسيد، از پُست، استفاده مي‌شود.
action = محلي را نشان مي‌دهد كه اطلاعات، براي پردازش، به آنجا ارسال خواهد شد؛ يعني آدرس يك صفحه است، كه در اينجا براي مثال، test.htm را انتخاب كرده‌ام.
name = نام فرم. 
onSubmit = يك رويداد است. تابعي را كه در جاوا اسكريپت، نوشته‌ايد را صدا مي‌كند.
فراموش نكنيد كه براي هر جزء، نامي بگذاريد. تا اينجاي كار، اسكلت و ظاهر فرم، ساخته شده است. 

خطايابي (كد جاوا)
 • از اين به بعد، به بخش خطايابي مي‌پردازيم. اول بايد در نظر بگيريم كه خطا از نظر ما چيست. 
- مثلا در يك فرم ارسال ايميل، نبايد آدرس ايميل غلط باشد.
- يا مثلا متني كه نوشته مي‌شود، نبايد بيشتر يا كمتر از فلان حد باشد.
- يا موردي كه بايد نوشته و مشخص شود، خالي مانده.
 پس بايد طوري برنامه نويسي كنيم كه مانع انجام اين اشتباههات بشويم. 
 • در فرم ساده ما، خطا، زماني است كه اسمي نوشته نشود، و فرم خالي ارسال شود. پس بايد با كمك جاوا بنويسيم كه اگر فيلد نام، خالي بود، مانع ارسال فرم شده و پيام بدهد.


ارسال و ذخيره اطلاعات
 بعد از دريافت صحيح اطلاعات، بايد آن را به جايي كه قرار است ذخيره شود، بفرستيم. در اينترنت، به چند صورت مي‌شود اطلاعات را ذخيره نمود.
ذخيره در كوكي: اطلاعات كوتاه و ضروري را در آن ذخيره مي‌كنند. به اميد خدا در جلسات آتي، به آن خواهيم پرداخت. 
ذخيره در پرونده‌هاي معمولي: مثلا در پرونده متني (Text). نسبت به كوكي، قادر به ذخيره اطلاعات بيشتري است؛ اما به لحاظ اينكه براي ساخت، تغيير و حذف يك پرونده يا پوشه، احتياج به مجوز از طرف سيستم شماست، و اين كار، به خاطر جلوگيري از نفوذ ويروس و خرابكاران (هكر)، به سختي انجام مي‌پذيرد، مقرون به صرفه نيست. 
ذخيره در بانك اطلاعاتي: بهترين روش ذخيره اطلاعات است؛ هم از لحاظ ذخيره حجم بالاي اطلاعات، هم ترتيب و نظم، هم خواندن راحت و سريع آنها. اساس كار بانك اطاعات، استفاده از جدول است؛ جدولي كه تشكيل شده از ستون و سطرهاي مختلف؛ مانند جداولي كه در بسياري از جاها، ديده‌ايد. 
استفاده از بانك اطلاعاتي، مناسبترين روش است كه معمولا اطلاعات فرمها، به آن ارسال مي‌شود؛ اما
بانكها، زبان ما - جاوا اسكريپت - را نمي‌فهمند، و زبان خاص خودشان را دارند؛ يعني زبانهاي سروري كه قبلا گفته شد. 
وبلاگها و پايگهايي كه رايگان تهيه شده‌اند، اجازه اجرا اين گونه زبانها را نمي‌دهند. 
 • به اميد خدا بعد از پايان درس جاوا اسكريپت، اگر دوستان علاقمندي باشند، به بحث درباره يكي از زبانهاي سروري (asp, php) خواهيم پراخت؛ حداقل تا جايي كه بتوانيد خودتان يك بانك را ساخته و اطلاعاتان را در آن ذخيره كنيد.
 • ظاهرا بحث فرم - تا آنجا كه به جاوا مربوط مي‌شده - در اينجا به پايان رسيده است. اين جلسه، هديه‌اي به دوستان عزيزي كه تقاضاي درس عملي و كاربردي را داشته‌اند. در پايان، شما را با عناصر ديگري كه ممكن است در فرم، استفاده شوند، آشنا مي‌كنم.

واژه‌نامه
Get - Post = تفاوت بين اين دو، در چگونگي ارسال اطلاعات از فرم، به اسكريپت پردازشگر است. 
اگر از روش گت، استفاده كنيد، مقدار اطلاعاتي كه مي‌توانيد ارسال كنيد، محدود است. 
با استفاده از روش get، اطلاعات به دست آمده از فرم، به عنوان بخشي از يك URL، انتقال مي‌يابد؛ اما در روش post، اطلاعات، در حقيقت به صورت نامرئي، منتقل مي‌شود. اگر براي مثال، در روش گت، كاربر، يك رمز عبور را در فيلد پسورد، بنويسد، و فرد ديگري نيز در حال مشاهده صفحه نمايش كاربر باشد، به راحتي مي‌تواند از رمز عبور كاربر، آگاه شود. به عبارت ديگر، اين روش، در سطح امنيتي پايين‌تري از روش پست مي‌باشد. 
صفحه‌اي كه حاوي فرمي با مشخصه گت است، مي‌تواند نشانه گذاري (Bookmark) شود؛ در حالي كه در روش پست، اين كار، ممكن نيست. 

عناصر فرم
 • هميشه پاسخها، به صورت تشريحي نيست. گاهي اوقات، تستي بوده و جوابهاي از پيش تعريف شده دارد. مثل سوال از جنسيت كاربر، يا شهر محل سكونت. در اين موارد، بايد از عناصر ديگه فرم استفاده نمود؛ مانند چك باكس، يا دكمه راديويي.
 
  ComboBox-JumpMenu - فهرست آبشاري

  ListBox - ليست باكس
  ListBox-Multiple - ليست باكس چند انتخابي 

 Button-Image - دكمه عكسي

  File - دريافت فايل

  Text - متن

  Password - پسورد

Hidden - متن مخفي

  TextArea - متن زياد

به اميد ديدار
خدانگهدار 


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:7  توسط راهنما  | 

جلسه 16 شانزده

فراخوانسلام
تغييرات:
- در همين مقاله، تغييراتي داده شده. (پرسش و پاسخ، بازي)
- در پرسش و پاسخ جلسه قبل، تغييراتي داده شده.
- در طراحي اين وبلاگ، با كمك جاوا، يك تغيير ظريفي انجام شده. پيدا كنيد.
خوشحالم كه اين شور و شوق و تحرك را در شما مي‌بينم. آرزويم اين بوده كه پايگاهي وجود داشته باشد كه مرجع و منبعي براي علاقمندان باشد. من كه فاصله دارم با اين هدف؛ ولي به شما دوستان اميدوارم. به قول پير مردا: "چشم اميدم به شماست". 
پيشنهاد مي‌كنم به منظور رسيدن به اين هدف، اين جمع دوستانه و صميمي را حفظ كنيد. هر مطلب جالبي، مقاله جديد، روش آموزشي نوين، يا كد زيبايي به چشمتان خورد، به نام خودتان در اين وبلاگ، قرار بدهيد. 
به اميد خدا، يا جاي بهتر و بزرگتري پيدا مي‌كنيم؛ يا شعبه‌هايي در همين پايگاه، ايجاد مي‌كنيم كه به صورت زنجيره‌اي فعاليت كنند. مثلا: 
وبلاگ آموزشي 
وبلاگي مخصوص كد و برنامه‌هاي آماده 
وبلاگ اخبار و تازه‌هاي جاوا اسكريپت، فناوري و نرم افزراهاي كمكي 
تقريبا در هر سه مورد، كارهايي انجام داده‌ام، و بانكي از كدها، و نرم افزارهاي اين زبان را تهيه كرده‌ام. 
 • روش من، همانطور كه از اول گفته‌ام، اين است كه شما به صورت خودكار دست به كار شويد؛ و به جوابتان برسيد. يك علت تاخير نوشتن مقاله جديد يا در پاسخ به سوالها، همين است؛ كه فرصت تمرين بيشتر داشته باشيد و كساني كه به هر دليلي از درس عقب مانده‌اند، خودشان را برسانند. 
داخل پرانتز: يكي از چيزهايي كه باعث نااميدي بعضي از دوستان تازه كار مي‌شود، اين است كه از ديگران عقب مانده‌اند و يا ديرتر درس را ياد مي‌گيرند. منتظر مي‌مانم تا برسند. دوستان ديگري كه از هوش و استعداد، يا فرصت بيشتري برخوردارند، مي‌توانند با مراجعه به پايگاه‌ها و كتابهايي كه معرفي شده، پيش بروند. 
به قول اون سرباز زخمي و فداكار: شما بريد؛ من اينجا مي‌مونم.
و به قول فرمانده همون سرباز: يك فرمانده شجاع، هيچ وقت سربازش رو تنها نميذاره.
به حرفهايي كه گفتم فكر كرده و راهنمايي‌هاي خود را از من دريغ نفرماييد.

پرسش و پاسخ:
?پرسش:
سلام. يه سوال: اگه خواستيم مثلا با کليک روي يک دکمه يه پاراگراف جديد درست بشه چکار بايد کرد؟
• پاسخ: 
سلام
1- يك خواهش داشتم. سوالت را واضح بنويس؛ مثلا بگو در كجا مي‌خواهي اين كد را استفاده كني. با اين كار، مخاطب شما، بهتر منظورتان را بهتر درك مي‌كند.
2- با تشكر از ايراني كه لطف كردند و پاسخ دادند. آفرين به شما.
3- راه حلي كه من دارم خدمتتان مي‌نويسم. 




 



• براي ديدن نمونه عملي، اينجا كليك كنيد.

• پاسخ: 
سلام دوست عزيز mreza! نامه شما به دستم رسيد. ظاهرا شما تمايل داريد با قدرت و كارايي اين زبان آشنا شويد. نمي‌دانم قبلا با چه زباني كار كرده‌ايد؛ اما نظر شما را به اين موضوع جلب مي‌كنم كه: عناصر و اشياء موجود در يك صفحه، ماهيت و كارايي مختلفي دارند. بعضي از آنها قابل ويرايش نيستند و به اصطلاح ReadOnly (فقط خواندني) هستند؛ و بعضي اجازه تغيير و اصلاح و يا نوشتن متن را به شما مي‌دهند. مانند جعبه متن (Textbox). توجه به اين نكته، شايد شما را در رسيدن به هدفتان، كمك كند.
• پاسخ: 
آقا حامد سلام. نامه‌يتان به دستم رسيد. تشكر از صبر و همتتان. ببخشيد اگر جسارتي شد. صلاح مملكت خويش، خسروان دانند. تنها يك نكته. فرموديد كه متاسفانه بازديد كننده كم است. عرض مي‌كنم كه چه كمي؟ كم كمّي، يا كم كيفي؟ مطالب وبلاگ شما، تخصصي است. يك نفر بازديد كننده از چنين وبلاگي، برابري مي‌كند با 10 نفر بازديد كننده وبلاگ يا سايتي كه پر از شعر و عكس و ترانه و جك است.
علاوه بر اينكه موافق نظرتان نيستم، و اميدوارم كه وبلاگتان، به مرور علاقمندان خاص خود را پيدا كند؛ شما را به رعايت نكاتي كه عرض كردم و همچنين تبليغ مناسب از وبلاگتان، توصيه مي‌كنم. خدانگهدار
?پرسش:
با سلام. شما مي‌توانيد ميلي ثانيه را با دستور زير به دست بياوريد؟
getMilliseconds()
• پاسخ: 
سلام. تا آنجا كه من اطلاع دارم، اين دستور هنوز ساخته نشده است. تا آن زمان، مي‌توانيد از دستور ثانيه استفاده كنيد؛ و اگر خواستيد آنرا تقسيم به ده، صد، هزار يا ميليون نماييد.

بازي:
بازيي كه قولش را داده بودم، امروز آماده كرده‌ام. اما چون اينجا، وبلاگ است و محيط وبلاگ - به قول آقا حامد - محدوديتهاي فراواني دارد، آماده سازي اين بازي، يا پروژه‌هاي عملي ديگر، طول مي‌كشد. اگر با اين مشكل آشنا باشيد و آنرا در نظر بگيريد، متوجه خواهيد شد كه با چه زحمتي و با چه ترفندهاي مختلفي، يك صفحه خارجي براي شما درست مي‌شود. 
تمام اينها، هديه‌اي به شما دوستان عزيزم
• براي ديدن بازي، اينجا كليك كنيد. براي اولين بار، صفحه باز شده را رفرش كنيد.


به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:6  توسط راهنما  | 

جلسه 15 پانزدهم

سلام

سلام دوباره به همه دوستاني كه منو در پايگاه قبلي، همراهي كردند. چه ميشه كرد؛ سال جديد و خونه تكوني. امان از درد مستاجري. اونجا صابخونه ما رو جواب كرد. دنبال يك جاي مناسب مي‌گشتم. اومدم بنگاه بلاگفا كه خونه بگيرم؛ اما چشمتون روز بد نبينه. اتاق خالي نداشت. همه پر بودند. البته خالي بود ولي در شان ما نبود. آخه وبلاگ آشپزي به چه كار من مياد. براي همين مجبور شدم، آدرسم رو كمي تغيير بدم. به جاي JavaScript (كه فعلا در اختيار دوست عزيزم در پايگاه ايران جاوا اسكريپت است)، شده JScript.
باور كنيد اين مقاله رو خيلي وقته كه نوشتم و آماده كردم؛ ولي امان از دست اين آمريكاي چيزخوار. چشم نداره كه پيشرفت ما رو ببينه. هي ميزنه پرشين بلاگ رو خراب ميكنه و نميذاره مطلب جديد بنويسم. منم كه ديدم اين جوريه، گفتم به كوري چشم آمريكا، بايد يك جاي مناسب پيدا كنم. يكي از جاهايي كه مناسب ديدم، همين جاست كه الان واستاديم. شايد هم برم جاي ديگه. نه به اون روز كه هيچ جا نداشتيم كه بنويسيم، نه به امروز كه ... .
تغييرات:
1- در همين درس، تغييراتي داده شده.
2- واژه نامه در "يك پروژه" كاملتر شد.
3- جلسه 6، شرط، كاملتر شد.

حلقه (زنجيره)
 • در زندگي، بعضي چيزها تكرار مي‌شوند؛ هر روز و هر شب؛ و گاهي هر لحظه؛ مثل نفس كشيدن. كارهايي كه حلقه وار انجام مي‌شوند يا انتها و عمر محدودي دارند، و يا بي‌انتها و نامحدودند؛ مانند شب و روز. چون برنامه‌نويسي، اقتباسي از زندگي انسان است، و قرارست در خدمت ما باشد، از اين قاعده مستثني نيست.

تعريف حلقه
 • « يكي ديگر از ويژگيهاي مفيد جاوا اسكريپت و همچنين ساير زبانهاي برنامه نويسي، توانايي ايجاد حلقه‌هاي تكرار، يا اجراي گروهي از دستورالعملها به صورت تكراري است. اين، يكي از كارهايي است كه رايانه‌ها قادرند تا به خوبي آنها را انجام دهند، و آن چيزي نيست جز انجام كارهاي تكراري با دقت بالا. در برنامه‌هاي اسكريپت، از حلقه‌هاي تكرار به عنوان يك ابزار قوي و مهم، استفاده‌هاي فراواني مي‌شود. » كتاب "خود آموز جاوا اسكريپت در 24 ساعت"

ادات حلقه
 • از روشهاي مختلفي براي ايجاد حلقه، استفاده مي‌شود.
1. for
2. While
3. do ... while
معروفترين ابزار حلقه، for است.

ساختمان حلقه for
 • ساختمان حلقه، شبيه يك زنجير است كه از تعدادي حلقه، ساخته شده است.
for (Counter; Condition Expression; step)
{Code}
حلقه for، از چهار جزء، تشكيل شده است. همانطور كه مي‌بينيد، داراي سه پارامتر است كه داخل پرانتز ( ) قرار گرفته‌اند و با سمي كالن (;) از هم جدا مي‌شوند؛ و يك جواب، كه حاوي كد مورد نظر ما بوده، و داخل يك كروشه { } قرار مي‌گيرد.
1. ابتداي حلقه: a = 0. اين عدد، شروع و ابتداي حلقه را معيّن مي‌كند.
2. انتهاي حلقه: a < 10. اين عدد، حداكثر و انتهاي حلقه - به عبارت ديگر، تعداد تكرار دستورات - را مشخص مي‌كند.
3. افزايش يا كاهش: اين پارامتر، مشخص مي‌كند كه حلقه، در هر بار اجرا، يك واحد زياد شود يا كم. 
4. جواب حلقه: حلقه، بي شباهت به شرط نيست. به عبارت ديگر: اگر متغير ما (a)، از 0 تا 10 تداوم داشت، نمايش پيام، ادامه داشته باشد.
نكته: اگر حلقه، تنها شامل يك جواب باشد، - مانند شرط- نيازي نيست كه آن را درون علامت كروشه { } قرار دهيم.
مثال: دستورالعمل زير، پيامي را 10 مرتبه، جهت توجه بيشتر كاربر، نمايش مي‌دهد:
for (a = 0; a < 10; a++)
{
  document.write ("پيام" + a); // جواب حلقه
}
تمرين: به نظر شما آيا مي‌توان اين حلقه را به صورت شرطي هم نوشت؟ منتظر پاسخ عملي شما هستم.

ساختمان حلقه while
حلقه while از لحاظ اجزاء تشيكل دهنده، فرقي با حلقه for نداري؛ اما از لحاظ تركيب و محل قرار گرفتن آنها، متفاوت است.
var a = 0;
while (a < 10)
{
document.write ("پيام", a ,"
");
a++;
}

همانطور كه مي‌بينيد، متغير، قبل از while، تعريف شده، و داخل پرانتز، يك پارامتر قرار گرفته. پارامتر افزايش هم بعد از كد، نوشته شده. به محل قرار گيري اين پارامتر دقت كنيد؛ چون اگر قبل از دستور، نوشته شود، معناي ديگري مي‌دهد و كمي در نتيجه كار، تغيير ايجاد مي‌كند.

ساختمان حلقه do ... while
var a = 0;
do 
{
document.write ("پيام", a );
a++;
}
while (a < 10);
توجه داريد كه براي درك راحت اين مفاهيم، فقط اسكلت و شكل ساده آنها را نوشته‌ام. شما مي‌توانيد با مراجعه به كتاب و سايتهايي كه معرفي شد، با اشكال مختلف آنها آشنا شويد.

اهميت حلقه
 • اهميت حلقه را به مرور و در طي برنامه‌هاي عملي پي خواهيد برد. فعلا عرض مي‌كنم اگر به شباهت حلقه و شرط دقت كنيد، متوجه اهميت آن نيز خواهيد شد. حداقل فايده حلقه، اختصار در كدنويسي است. مثلا به جاي اينكه ده مرتبه يك عبارت را بنويسيد، اينكار را با دستور ساده حلقه، به راحتي مي‌توانيد انجام دهيد.

كاردستي1: ساخت جدول ضرب، با حلقه
ابتدا لازم است بدانيد كه چگونه يك جدول (Table) در اچ‌تي‌ام‌ال ساخته مي‌شود. 

ساختمان جدول
جدول، تشكيل شده از ستون افقي و ستون عمودي. تگ اصلي جدول به اين صورت است:
. مابين اين دو، تگ ستون افقي و عمودي قرار مي‌گيرد.










همانطور كه مي‌بينيد، تگ جدول، چند پارامتر دارد كه مشخصات آن را (اندازه، حاشيه، رنگ و ...) مشخص مي‌كند.

كد:

كاردستي2: اسكرول صفحه (حركت صفحه از بالا به پايين)
شرح عمليات: ساخت اين برنامه، بسيار ساده و راحت است. 
. مواد لازم براي آن، يك حلقه، و يك متد اسكرول صفحه است، كه در يك تابع قرار مي‌دهيم.
. يك تابع (funDown) براي پايين رفتن، و يك تابع (funUp) براي بالا آمدن. اين توابع، به صورت مستقل، اجرا‌ مي‌شوند.
. در قسمت بدنه، دو دكمه (يا چيزي شبيه آن) قرار مي‌دهيم. يكي براي فعال كردن تابع اول، و ديگري براي تابع دوم. به هنگام كليك بر روي دكمه‌ها، توابع، اجرا مي‌شوند؛ يعني بايد از رويداد onClick استفاده كنيم.
كد:

• براي ديدن نمونه عملي آن، اينجا كليك كنيد.

واژه نامه: اين اصطلاحات را به خاطر داشته باشيد؛ چون در برنامه نويسي، كاربرد دارد.
Table = جدول.
Row = سطر، ستون افقي.
Cell = سلول، خانه‌هاي جدول.

window = شي صفحه است، كه داراي متدهاي مختلفي است.
window.scroll = متد اسكرول صفحه. داخل پرانتز، دو پارامتر دارد كه دو عدد هستند كه موقعيت صفحه را نشان مي‌دهند. اولي، موقعيت فعلي صفحه؛ دومي، موقعيتي كه بايد به آنجا برسد.
window.scrollTo - window.scrollBy = دو متد ديگر از parent هستند. با تمرين، به دست آورديد كه چه كاري انجام مي‌دهند.
parent = معادل window است و در مورد اسكرول، مي‌تواند به جاي آن قرار گيرد.
به اميد ديدار
خدانگهدار

+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:5  توسط راهنما  | 

جلسه 14 چهارهم

سلام
سلام دوباره به همه دوستاني كه منو در پايگاه قبلي، همراهي كردند. چه ميشه كرد؛ سال جديد و خونه تكوني. امان از درد مستاجري. اونجا صابخونه ما رو جواب كرد. دنبال يك جاي مناسب مي‌گشتم. اومدم بنگاه بلاگفا كه خونه بگيرم؛ اما چشمتون روز بد نبينه. اتاق خالي نداشت. همه پر بودند. البته خالي بود ولي در شان ما نبود. آخه وبلاگ آشپزي به چه كار من مياد. براي همين مجبور شدم، آدرسم رو كمي تغيير بدم. به جاي JavaScript (كه فعلا در اختيار دوست عزيزم در پايگاه ايران جاوا اسكريپت است)، شده JScript.
باور كنيد اين مقاله رو خيلي وقته كه نوشتم و آماده كردم؛ ولي امان از دست اين آمريكاي چيزخوار. چشم نداره كه پيشرفت ما رو ببينه. هي ميزنه پرشين بلاگ رو خراب ميكنه و نميذاره مطلب جديد بنويسم. منم كه ديدم اين جوريه، گفتم به كوري چشم آمريكا، بايد يك جاي مناسب پيدا كنم. يكي از جاهايي كه مناسب ديدم، همين جاست كه الان واستاديم. شايد هم برم جاي ديگه. نه به اون روز كه هيچ جا نداشتيم كه بنويسيم، نه به امروز كه ... .
تغييرات:
1- در همين درس، تغييراتي داده شده.
2- واژه نامه در "يك پروژه" كاملتر شد.
3- جلسه 6، شرط، كاملتر شد.

حلقه (زنجيره)
 • در زندگي، بعضي چيزها تكرار مي‌شوند؛ هر روز و هر شب؛ و گاهي هر لحظه؛ مثل نفس كشيدن. كارهايي كه حلقه وار انجام مي‌شوند يا انتها و عمر محدودي دارند، و يا بي‌انتها و نامحدودند؛ مانند شب و روز. چون برنامه‌نويسي، اقتباسي از زندگي انسان است، و قرارست در خدمت ما باشد، از اين قاعده مستثني نيست.

تعريف حلقه
 • « يكي ديگر از ويژگيهاي مفيد جاوا اسكريپت و همچنين ساير زبانهاي برنامه نويسي، توانايي ايجاد حلقه‌هاي تكرار، يا اجراي گروهي از دستورالعملها به صورت تكراري است. اين، يكي از كارهايي است كه رايانه‌ها قادرند تا به خوبي آنها را انجام دهند، و آن چيزي نيست جز انجام كارهاي تكراري با دقت بالا. در برنامه‌هاي اسكريپت، از حلقه‌هاي تكرار به عنوان يك ابزار قوي و مهم، استفاده‌هاي فراواني مي‌شود. » كتاب "خود آموز جاوا اسكريپت در 24 ساعت"

ادات حلقه
 • از روشهاي مختلفي براي ايجاد حلقه، استفاده مي‌شود.
1. for
2. While
3. do ... while
معروفترين ابزار حلقه، for است.

ساختمان حلقه for
 • ساختمان حلقه، شبيه يك زنجير است كه از تعدادي حلقه، ساخته شده است.
for (Counter; Condition Expression; step)
{Code}
حلقه for، از چهار جزء، تشكيل شده است. همانطور كه مي‌بينيد، داراي سه پارامتر است كه داخل پرانتز ( ) قرار گرفته‌اند و با سمي كالن (;) از هم جدا مي‌شوند؛ و يك جواب، كه حاوي كد مورد نظر ما بوده، و داخل يك كروشه { } قرار مي‌گيرد.
1. ابتداي حلقه: a = 0. اين عدد، شروع و ابتداي حلقه را معيّن مي‌كند.
2. انتهاي حلقه: a < 10. اين عدد، حداكثر و انتهاي حلقه - به عبارت ديگر، تعداد تكرار دستورات - را مشخص مي‌كند.
3. افزايش يا كاهش: اين پارامتر، مشخص مي‌كند كه حلقه، در هر بار اجرا، يك واحد زياد شود يا كم. 
4. جواب حلقه: حلقه، بي شباهت به شرط نيست. به عبارت ديگر: اگر متغير ما (a)، از 0 تا 10 تداوم داشت، نمايش پيام، ادامه داشته باشد.
نكته: اگر حلقه، تنها شامل يك جواب باشد، - مانند شرط- نيازي نيست كه آن را درون علامت كروشه { } قرار دهيم.
مثال: دستورالعمل زير، پيامي را 10 مرتبه، جهت توجه بيشتر كاربر، نمايش مي‌دهد:
for (a = 0; a < 10; a++)
{
  document.write ("پيام" + a); // جواب حلقه
}
تمرين: به نظر شما آيا مي‌توان اين حلقه را به صورت شرطي هم نوشت؟ منتظر پاسخ عملي شما هستم.

ساختمان حلقه while
حلقه while از لحاظ اجزاء تشيكل دهنده، فرقي با حلقه for نداري؛ اما از لحاظ تركيب و محل قرار گرفتن آنها، متفاوت است.
var a = 0;
while (a < 10)
{
document.write ("پيام", a ,"
");
a++;
}

همانطور كه مي‌بينيد، متغير، قبل از while، تعريف شده، و داخل پرانتز، يك پارامتر قرار گرفته. پارامتر افزايش هم بعد از كد، نوشته شده. به محل قرار گيري اين پارامتر دقت كنيد؛ چون اگر قبل از دستور، نوشته شود، معناي ديگري مي‌دهد و كمي در نتيجه كار، تغيير ايجاد مي‌كند.

ساختمان حلقه do ... while
var a = 0;
do 
{
document.write ("پيام", a );
a++;
}
while (a < 10);
توجه داريد كه براي درك راحت اين مفاهيم، فقط اسكلت و شكل ساده آنها را نوشته‌ام. شما مي‌توانيد با مراجعه به كتاب و سايتهايي كه معرفي شد، با اشكال مختلف آنها آشنا شويد.

اهميت حلقه
 • اهميت حلقه را به مرور و در طي برنامه‌هاي عملي پي خواهيد برد. فعلا عرض مي‌كنم اگر به شباهت حلقه و شرط دقت كنيد، متوجه اهميت آن نيز خواهيد شد. حداقل فايده حلقه، اختصار در كدنويسي است. مثلا به جاي اينكه ده مرتبه يك عبارت را بنويسيد، اينكار را با دستور ساده حلقه، به راحتي مي‌توانيد انجام دهيد.

كاردستي1: ساخت جدول ضرب، با حلقه
ابتدا لازم است بدانيد كه چگونه يك جدول (Table) در اچ‌تي‌ام‌ال ساخته مي‌شود. 

ساختمان جدول
جدول، تشكيل شده از ستون افقي و ستون عمودي. تگ اصلي جدول به اين صورت است:
. مابين اين دو، تگ ستون افقي و عمودي قرار مي‌گيرد.










همانطور كه مي‌بينيد، تگ جدول، چند پارامتر دارد كه مشخصات آن را (اندازه، حاشيه، رنگ و ...) مشخص مي‌كند.

كد:

كاردستي2: اسكرول صفحه (حركت صفحه از بالا به پايين)
شرح عمليات: ساخت اين برنامه، بسيار ساده و راحت است. 
. مواد لازم براي آن، يك حلقه، و يك متد اسكرول صفحه است، كه در يك تابع قرار مي‌دهيم.
. يك تابع (funDown) براي پايين رفتن، و يك تابع (funUp) براي بالا آمدن. اين توابع، به صورت مستقل، اجرا‌ مي‌شوند.
. در قسمت بدنه، دو دكمه (يا چيزي شبيه آن) قرار مي‌دهيم. يكي براي فعال كردن تابع اول، و ديگري براي تابع دوم. به هنگام كليك بر روي دكمه‌ها، توابع، اجرا مي‌شوند؛ يعني بايد از رويداد onClick استفاده كنيم.
كد:

• براي ديدن نمونه عملي آن، اينجا كليك كنيد.

واژه نامه: اين اصطلاحات را به خاطر داشته باشيد؛ چون در برنامه نويسي، كاربرد دارد.
Table = جدول.
Row = سطر، ستون افقي.
Cell = سلول، خانه‌هاي جدول.

window = شي صفحه است، كه داراي متدهاي مختلفي است.
window.scroll = متد اسكرول صفحه. داخل پرانتز، دو پارامتر دارد كه دو عدد هستند كه موقعيت صفحه را نشان مي‌دهند. اولي، موقعيت فعلي صفحه؛ دومي، موقعيتي كه بايد به آنجا برسد.
window.scrollTo - window.scrollBy = دو متد ديگر از parent هستند. با تمرين، به دست آورديد كه چه كاري انجام مي‌دهند.
parent = معادل window است و در مورد اسكرول، مي‌تواند به جاي آن قرار گيرد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:3  توسط راهنما  | 

جلسه سیزده 13

ساعتسلام
تغييرات:
1- پاسخ به سوالات جديد در جلسه 12.
2- در جدول شماره 4، جلسه 9 تغييراتي داده شد.
حالا كه با توابع آشنا شده‌ايد، برنامه ساخت يك ساعت را با هم تمرين مي‌كنيم. اين پروژه را در چند فاز، انجام مي‌دهيم كه هر فاز، به تنهايي قابل اجراست.

مواد مورد نياز:
. دستورات جاوا را در بخش سر (Head) صفحه خود بنويسيد.
. در قسمت بدنه، يك پاراگراف، درست كرده و نام آنرا Font بگذاريد.


• فاز اول. به دست آوردن زمان كلي: متغيري به نام Time مي‌سازيم كه زمان را به دست مي‌آورد.
// 1.
var Time = new Date ();
document.write ("زمان: " + Time);// با اين دستور، زمان به دست آمده، نوشته مي‌شود
• فاز دوم. به دست آوردن اجزاء زمان (ساعت، دقيقه و ثانيه): سه متغير مي‌سازيم براي به دست آوردن سه قسمت از زمان.
// 2.
var H = Time.getHours();// ساعت
var M = Time.getMinutes();// دقيقه
var S = Time.getSeconds();// ثانيه
var Clock = H + ":" + M + ":" + S;// متغيري مي‌سازيم كه اين سه عنصر را يك جا ذخيره كند
document.write ("
ساعت: " + Clock);// با اين دستور، زمان به دست آمده، نوشته مي‌شود
• فاز سوم. قرار دادن دستورات در يك تابع: تابعي ساخته به نام funTime تا كنترل بيشتري بر كدهاي خود داشته باشيم. تمام كدهايي كه نوشته‌ايم داخل اين تابع قرار مي‌دهيم. 
// 3.
function funTime()
{
var Time = new Date ();
var H = Time.getHours();
var M = Time.getMinutes();
var S = Time.getSeconds();
var Clock = H + ":" + M + ":" + S;
Font.innerText = "ساعت: " + Clock;// اين، همان پاراگرافي است كه قبلا در بدنه نوشته‌ايم
}
در تگ بدنه، اين كد را نوشته و با آن، تابعي را كه ساختيد، صدا كنيد.
onLoad="funTime()"
• فاز چهارم. ساخت تايمر: تا اينجا، پروژه ما كامل شده و ساعت را نشان مي‌دهد؛ اما فقط زماني را نشان مي‌دهد كه براي اولين بار، پنجره را باز كرده‌ايم. به نظر شما چه بايد كرد كه لحظه به لحظه، زمان را به ما نمايش دهد؟ يك راه، اين است كه مدام، صفحه را بازخواني و رفرش كنيم. اين كار چندان راحت و معقول نيست. بهترست فقط تابع خود را بازخواني كنيم. براي اين كار از setTimeout استفاده مي‌كنيم كه يك تايمر است.
// 4.
function funTime()
{
var Time = new Date ();
var H = Time.getHours();
var M = Time.getMinutes();
var S = Time.getSeconds();
var Clock = H + ":" + M + ":" + S;
Font.innerText = "ساعت: " + Clock;
setTimeout ("funTime()", 1000);// با اين تايمر، تابع ما، در هر يك ثانيه، دوباره خواني مي‌شود
}
• براي ديدن نمونه عملي آن، اينجا كليك كنيد.

واژه نامه:
ID: آي‌دي، همان نام (Name) شي است؛ البته گاهي در عمل تفاوتهايي با هم دارند.
innerText: با اين دستور، متن يك تگ در قسمت بدنه - مانند محتويات تگ پاراگراف - نمايش داده مي‌شود؛ و مي‌توانيم آنرا تغيير داده و ويرايش كنيم. 
outerHTML - innerHTML - outerText: اين 3 متد، شبيه دستور قبلي است؛ البته با كمي تفاوت.
setTimeout: دستور تايمر و زمان شمار است. بعد از آن، يك جفت پرانتز، قرار دارد كه داخلش، دو پارامتر نوشته مي‌شود:
1. اسم چيزي است كه قرار است اجرا شود؛ مانند يك تابع.
2. زماني كه تايمر در آن فعال خواهد شد. واحد زمان، ميلي ثانيه است. (1000 = يك ثانيه)
setInterval: دستور تايمر و زمان شمار است. مانند دستور قبل، عمل مي‌كند.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:3  توسط راهنما  | 

جلسه دوازده 12

آرايهسلام
داخل پرانتز: همگي خسته نباشيد. اجازه بدهيد قبل از اينكه درس جديد را شروع كنم، صحبتي داشته باشم. به دوستان جديدي كه به جمع ما پيوسته‌اند، خوش آمد مي‌گويم. اميدوارم چيزهاي كمي كه مي‌دانم به درد شما بخورد. به دوستان قديمي خسته نباشيد گفته و يك گلايه هم دارم. سوالي كه در جلسه قبل كردم، بي‌جواب ماند.
بيشتر از يك هفته است كه درباره موضوعي مطالعه مي‌كردم، به نام كوكي (Cookie). با اينكه از مباحث مهم و كاربردي جاوا اسكريپت است، متاسفانه نه در كتاب آموزشي و نه در سايت‌هاي معروف و مهم، اثري از آن ديدم. طبق معمول، بدون آموزش، از نمونه‌هاي موجود استفاده كرده و سعي داشتم از آنها بياموزم كه چطور نوشته مي‌شود. تقريبا از جستجو، نااميد شده بودم؛ تا اينكه به يكي دو تا پايگاه برخوردم، كه منبع بزرگي از كوكي هستند. هرچند آموزشي نيستند، ولي از هيچي بهترند.
خلاصه كلام اينكه اگر خدا بخواهد، اين ضعف و نقصان موجود در كتب و پايگاه‌هاي جاوا را اينجا و با هم جبران مي‌كنيم. نمونه‌اي از كاربرد كوكي را مي‌توانيد در سمت راست همين وبلاگ، در بخش ثبت نام ببينيد.

تعريف آرايه
آرايه، مجموعه‌اي از چند داده (ثابت و متغير) است كه به عنوان يك واحد شناخته شده و اعضاي آن، با كد، مشخص شده‌اند. به عبارت ديگر، تعدادي از اطلاعات كه در كنار هم قرار گرفته‌اند و يك وجه مشترك داشته و به يك نام خوانده مي‌شوند.
مثال: به اين كلمات دقت كنيد: تهران، اصفهان، شيراز. وجه مشترك اينها چيست؟ شهر بودن وجه اشتراكشان است. وقتي كه مي‌خواهيد تلفني با يكي از اين شهرها تماس بگيريد چه مي‌كنيد؟ كد مخصوص آن شهر را حتما فراموش نكنيد. بله، هر يك از شهرها، در شبكه بزرگ مخابرات، داراي كدي است كه معرّف آن است. بهتر است ما هم به جاي اينكه هر كدام از آنها را جداگانه به كار ببريم، براي هركدام، كد، تعريف كرده و آن را صدا بزنيم.

نوشتن آرايه
• نامگذاري آرايه
آرايه يك نوع متغير است كه بر خلاف متغيرهاي ديگر در جاوا، بايد از قبل تعريف شود. 
var Name = new Array(3);
var: نشانه متغير
Name: نامي كه شما براي آرايه، انتخاب مي‌كنيد. مناسب است در اينجا City را به عنوان نام، برگزينيد
new Array: كلمه كليدي كه بايد به همين صورت، بنويسيد
(3): طول آرايه، تعداد اعضاي آرايه
• معرفي اعضاء آرايه
بعد از معرفي و نامگذاري آرايه، بايد اعضايش را معرفي كنيم؛ كه دو روش براي اين كار وجود دارد.
- روش اول:
Name[0] = "تهران";
Name[1] = "اصفهان";
Name[2] = "شيراز";
Name: نام آرايه كه مشترك است
[0]: كد مخصوص به هر عضو
- روش دوم:
var Name = new Array("تهران","اصفهان","شيراز")
در اين روش، كد اعضا، به صورت فرضي، از صفر شروع مي‌شود.
• خواندن آرايه
بعد از نوشتن آرايه، نوبت به خواندن و صدا كردن آن است. در اين مثال مي‌توانيم از دو دستور alert يا document.write استفاده كنيم.
alert (Name[0])
براي صدا كردن هر شهر، كد آنرا بنويسيد.

تمرين: انتخاب يك گزينه از فهرست.  
اين برنامه را در قسمت بدنه صفحه خود، كپي كنيد:




معرفي پايگاه
• Useful JavaScript
اين پايگاه انگليسي زبان، جاوا اسكريپت را در جلسات منظم، ساده و با مثال، آموزش داده است.
• JavaScript Cookies
• Cookie Central (مركز كوكي)
اگر مانند من، به دنبال منبعي درباره كوكي‌ها مي‌گشتيد، اين دو پايگاه خارجي را مطالعه نماييد.

پرسش و پاسخ
?پرسش: 
سلام، ممنون از زحماتت. مي‌خواستم لطف كني در مورد متغيرهاي منطقي بيشتر توضيح بدي. آيا انواع گوناگون دارند و در كجا ها قابل مصرفند؟ متشكرم. هميشه موفق باشي.
• پاسخ: 
سلام. قبلا گفتيم، بولين (بله-خير)، يك نوع از اطلاعات و داده است. همانطور كه در مكالمات روزمره از بله و نه استفاده مي‌كنيم، در زبان برنامه نويسي هم، جواب بعضي از سوالات، يك جواب منطقي، يعني بله و خير است. مثلا يك كادر، ظاهر مي‌شود كه از شما مي‌پرسد "آيا مايل به ادامه كار هستيد؟" اين كادر، دو دكمه دارد. Ok, Cancel، كه همان بله و خير است. براي نمايش چنين كادري، از اين دستور استفاده كنيد.
confirm ("آيا شما مطمئنيد؟")
?پرسش: 
سلام. خسته نباشيد. مي‌خواستم بدونم كه شما چرا اسماي سخت براي كداتون ميزاريد. يعني آيا ميشه اسماي آسون براشون انتخاب كنيم.؟ يا حتي به فارسي اسمي رو بنويسيم؟ بعد اينكه مي‌خواستم بدونم كه مثلآ پيام (سلام). شايد ما بخواهيم ، در جاهاي مختلف پيامهاي گوناگون داشته باشيم. آيا مي‌شود،‌كه تابع شماره‌ي ۱ و ۲ و ۳ درست كرد؟ يعني قبلش تعريف كنيم و بعد با صدا كردن شماره‌ يك پيام مخصوصش بيايد؟ و غيره ... . ممنون ميشم اگه توضيح بديد. بازم خسته نباشيد و بي نهايت سپاسگزارم.
• پاسخ: 
سلام. هم در نام گذاري اسامي، آزاد هستيد و هم در استفاده از پيامهاي گوناگون. البته در نام گذاري، بعضي چيزها بايد لحاظ بشه؛ مثلا فارسي نباشه و با عدد شروع نشه؛ اما مي‌توانيد مثلا بگوييد: a1, a2, a3. راهي كه گفتيد خيلي خوبه؛ يعني قبلا آنها را تعريف كنيد و بعد صدا بزنيد.

?پرسش: 
با سلام. متشکریم از این که به ما سر زدید. سوالی داشتم. در مورد alert می خواستم بدانم نوع و شکل آن کادری که به دنبال اجرا کردن اين دستور باز مي‌شود آيا به نوع سيستم عامل بستگی دارد؟ به عبارتی آن کادر، از سیستم عامل ناشی می شود يا اينکه صرفا متکی بر سيستم جاوا است. با تشکر و خدانگهدار.
• پاسخ: 
سلام دوست عزيز! اين را به عنوان يك قاعده كلي مد نظر داشته باش. هر كاري كه شما به عنوان برنامه‌نويس مي‌خواهيد انجام دهيد، مشروط به استعداد و اجازه سيستم عامل است و بايد از امكانات موجود استفاده كنيد؛ يعني شما فقط فلان امكان موجود در ويندوز را فراخواني مي‌كنيد. يكي از آن امكانات، پيام است كه به اشكال گوناگون وجود دارد. 
?پرسش: 
با سلام. متشکرم از اینکه جوابی روشن و آشکار به سئوال قبلی ام دادید. سوال دیگری داشتم که اگر جواب دهید ممنون میشوم. چطور میتوان برنامه های جاوا را به هم ربط داد؟ (روشی غیر از فایلهای js.*) زیرا که این روش در واقع استفاده از دو برنامه جدا از هم است اما می خواستم بدانم که اگر در یک صفحه چند برنامه جاوا نوشته باشیم چگونه میتوانیم اینها را به هم ربط دهیم به طور مثال: اگر دو برنامه جاوا (جداگانه) در یک صفحه نوشته شده باشد چطور میتوان از برنامه اولی در برنامه دومی استفاده کرد و آنها را به هم مرتبط کرد. متشکرم. خدا نگهدار 
• پاسخ: 
سلام. اگر منظورتان از ربط دادن، صدا كردن يك تابع در تابع ديگر است، كه مشكلي نيست. كافي است نام تابع مورد نظر را در تابع دوم بنويسيد. يكي از راههاي صدا كردن تابع، همين است. البته اگر خود مثال را مي‌ديدم بهتر بود. در آينده، از اين نوع دستورات، يعني دستورات تركيبي، مثال خواهم زد.
?پرسش: 
سلام. از آموزش خوبتون خیلی خیلی ممنونم. نظیرش را کمتر روی اینترنت دیدم. دو تا سوال ازتون داشتم: 1- در برنامه انتخاب یک گزینه (که نوشته بودید) چرا وقتی برای اولین بار روی گزینه تهران میریم پیغام نمیده؟ 2- دستور OnChange در اون برنامه کارش چیه؟. من متوجه نشدم. باز هم ممنون. بای بای 
• پاسخ: 
سلام. جواب سوال اول شما، در سوال دوم است. دستور OnChange (كه يك نوع رويدادست و من انتخاب كرده‌ام)، به معناي "هنگام تغيير" است. يعني وقتي گزينه جديد را انتخاب كنيد و قبلي، تغيير كند. چون اولين گزينه، به صورت پيش فرض، تهران است و انتخاب شده، هيچ پيامي داده نمي‌شود. اميدوارم متوجه شده باشيد. اگر جوابم واضح نبود، تذكر بدهيد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:2  توسط راهنما  | 

جلسه 11 یازده

نام گذاري كدها (تابع)سلام
بحث امروز ما درباره مفهومي است كه جايگاه ويژه‌اي در برنامه نويسي دارد؛ تابع. كمتر پيش مي‌آيد كه كدي را بنويسيد و از تابع، استفاده نكنيد.
تابع 
• تابع يا همان فانِكشين (Function)، مجموعه‌اي از يك يا چند كد است كه در يك جا جمع شده و داراي نام شده‌اند.

نام گذاري كد
• اگر يادتان باشد، گفته بودم براي هر چيزي مي‌شود نامي انتخاب كرد، و به جاي آنكه مدام، كد آنرا تكرار كنيم، نام آنرا صدا مي‌زنيم. حالا كه تا حدودي با برنامه نويسي آشنا شده‌ايد، وقتش شده كه با نامگذاري آنها نيز آشنا شويد. براي اين كار از تابع استفاده مي‌كنيم.
مثال: كد پيام را به ياد داريد؟ 

اگر بخواهيم براي آن، نامي انتخاب كنيم، ابتدا كد مورد نظر را داخل يك جفت كورشه { } قرار داده، تا از كدهاي ديگر جدا شود. بعد، كلمه function را در اول آن نوشته و بعد، نامي كه انتخاب كرده‌ايد را با يك جفت پرانتز ()، بنويسيد. به اين صورت:

نامي كه من انتخاب كردم funAlert است. fun مخفف function، و Alert نوع كد مرا مشخص مي‌كند. ‌
آيا مي‌دانيد كدي كه الان درست كرده‌ايم با كد قبلي كه بي‌نام بود، چه فرقي دارد؟ در عمل يك فرق كوچك، و آنكه اين است كه قبلا به محض باز شدن صفحه، اجرا شده و پيام نمايش داده ميشد؛ ولي حالا، تا نام آنرا صدا نزنيم، عمل نمي‌كند. 
به نظر شما اين كار چه فايده‌اي دارد؟ منتظر جواب شما هستم.

صدا كردن تابع
• حالا بايد بدانيد چگونه و كجا تابع خود را صدا كنيد. در جلسه هشتم، با رويدادها آشنا شديم. يكي از راه‌هاي صدا زدن توابع، استفاده از رويدادهاست. اگر مي‌خواهيد فلان كد، به هنگام باز شدن صفحه، اجرا شود، از رويداد onLoad استفاده كنيد. اگر مي‌خواهيد با كليك كردن بر روي چيزي، برنامه‌اي اجرا شود، از onClick استفاده كنيد.
مثال: مي‌خواهم تابع funAlert، كه در مثال بالا درست كرده‌ام، به هنگام باز شدن صفحه اجرا شود. براي اين كار بايد به تگ بدنه (Body = بادي) رفته و اين كد را بنويسم:

اگر خواستيد با كليك بر روي عكسي، پيامي نمايش داده شود، بايد كد زير را در تگ عكس قرار دهيد. به اين صورت:

نقطه چين، يعني بقيه كدهاي مربوط به عكس.

خلاصه:
براي ساخت و به كارگيري يك تابع، سه كار بايد كرد. 
1- نوشتن كد: كدهايي را كه لازم داريم مي‌نويسيم.
2- نامگذاري: كدهاي نوشته شده را در يك جا، جمع كرده و نامگذاري مي‌كنيم.
3- صداكردن: در جاي مناسب، تابع را صدا مي‌كنيم.
پاورقي:
• مي‌شود در يك صفحه، چند تابع جداگانه بسازيم.
• مي‌شود يك تابع را توسط تابع ديگر، صدا زد. اين در زماني است كه دو تابع، در امتداد يكديگر فعاليت مي‌كنند.
• گاهي، داخل پرانتزي كه بعد از نام تابع قرار مي‌گيرد، چيزي نوشته مي‌شود به نام آرگومان كه يك نوع متغير است.

انواع متغير: متغير محلي و سراسري
اگر بخواهيم از نظر جنس، به متغير نگاه كنيم، سه نوع مهم دارد - رشته‌اي، عددي، منطقي- كه در جلسه قبل آشنا شديد. اما از لحاظ موقعيت و مكان استفاده، يك تقسيم بندي جديد براي متغير است.
1- متغير سراسري، عمومي (Global گلوبال)
اگر متغير را خارج از تابع بنويسيد، عمومي است؛ چون مي‌شود در سرتاسر برنامه، آنرا صدا زده و مورد استفاده قرار داد.
2- متغير محلي، خصوصي (Local لوكال)
اگر متغيري را داخل تابع تعريف كنيد، خصوصي است؛ يعني فقط در همان محل و همان تابع، كابرد دارد، و بيرون از آن، نه مي‌شود صدا زد و نه مي‌شود استفاده كرد.
خصوصيات متغير محلي و سراسري
- از متغير سراسري مي‌شود در توابع مختلف استفاده كرد؛ اما متغير محلي، فقط در همان تابع، كابرد دارد.
- محدوده متغير محلي، محدوده تابع آن است، و عمر آن، به اندازه عمر تابعش.
- مي‌دانيد كه نمي‌شود براي دو متغير، يك نام گذاشت؛ اما متغير محلي مي‌تواند با متغير سراسري، همنام باشد.
- اگر اين دو متغير، همنام شدند، تغيير مقدار يكي از آن دو، تاثيري در ديگري ندارد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:1  توسط راهنما  | 

جلسه ده 10

انواع متغيرسلام
با عرض معذرت، فاصله اين جلسه كمي طول كشيد. هم به اين علت كه هر چه جلوتر مي‌رويم، كار، دقيقتر و مشكلتر مي‌شود؛ و هم اينكه سرگرم تغيير دكوراسيون و قالب وبلاگ بودم. اميدوارم كه زيبا بوده و استفاده از مطالب، راحتتر شده باشد. بناي من بر اين است كه در هر هفته، دو جلسه، در خدمت شما باشم. به اميد خدا اين هفته هم همينطور خواهد بود.
« Date، از اشياء از پيش تعريف شده در جاوا است كه امكان كار با تاريخ و ساعت را در اختيار برنامه نويس، قرار ميدهد. هنگام نياز به ذخيره يك تاريخ و ساعت بخصوص، مي‌توانيد از Date استفاده كنيد. به كمك متدهاي اين شي، مي‌توانيد با تاريخ و ساعت ذخيره شده،‌ كار كنيد. شي Date، هيچ خصوصيتي ندارد؛ از اين رو، جهت نمايش يا دستيابي به مقادير ذخيره شده در آن، لازم است تا از متدهاي آن استفاده كنيد. » كتاب "خود آموز جاوا اسكريپت در 24 ساعت"

انواع متغير
پاورقي: « خوش به حال شما كه برنامه نويسي را از خوب جايي، و با خوب كساني شروع كرديد. دور و اطرافتان كساني هستند كه از راهنمايي و كمكشان بي‌بهره نيستيد. قدر اين زمان و مكان را بدانيد، استفاده كنيد، و مفيد باشيد. 
زماني كه من خواستم شروع كنم، تك و تنها، بدون استاد، و از زباني بسيار گسترده، پيچيده و مقرراتي - يعني ويژوال بيسيك - شروع كردم. سادگيي كه در جاوا اسكريپت، وجود دارد، در آن زبان يافت نمي‌شود. آنقدر مقررات و دستورات، كه از برنامه نويسي وحشت مي‌كردم. يعني من مي‌تونم!؟ سوالي كه اكثر اوقات برايم پيش مي‌آمد. از بخشهاي سخت آن زبان، انواع متغير بود. »
• همانطور كه در جلسه قبل آموختيد، داده‌ها، مواد خام و اصلي برنامه نويس است كه آنها را از راه‌هاي مختلفي به دست مي‌آورد. اين اطلاعات، از انواع مختلفي هستند. بعضي حروف و كلمه، و بعضي اعداد و ارقام.
1- رشته‌اي (String): حروف و كلمه
2- عددي (Number): اعداد و ارقام (اعداد صحيح و اعشاري)
3- منطقي (Boolean): بله و خير
اين، انواع داده‌ها در جاوا است؛ اما در ويژوال بيسيك، فقط 7 نوع داده عددي، وجود دارد. در زبانهاي ديگر، بايد قبل از هر كدنويسي، متغير، تعريف شود و نوع آن هم مشخص گردد. ولي در جاوا، نه معرفي جداگانه و ابتدايي آن لازم است، و نه مشخص كردن نوعش. اين خاصيت، كار را بسيار راحت مي‌كند.

خصوصيات داده‌ها
هر كدام از اين انواع، خصوصيات دارند. مثلا در اعداد، مي‌توان از علائم رياضي استفاده كرد؛ كه به آن، عمگرهاي رياضي گفته مي‌شود.
عملگرهاي رياضي
+
جمع
1 + 1
-
تفريق
2 - 1
*
ضرب
2 * 2
/
تقسيم
4 / 2
%
خارج قسمت

++
يك عدد، اضافه مي‌كند
1 ++
--
يك عدد، كم مي‌كند
10 --
جدول شماره 5
مثال: اين مثال، مقدمه‌اي است براي ساختن يك ماشين حساب.

خصوصيات رشته
• براي رشته‌ها يا همان حروف، دستورات و خصوصياتي وجود دارد. مثلا مي‌خواهيم بدانيم طول يك رشته چقدر است؛ يعني چه تعداد حرف، در آن به كار رفته؛ يا فلان حرف يا كلمه، در كجاي اين رشته قرار دارد؛ يعني چندمين حرف اين رشته است. 
پاورقي: « براي دست يافتن به اين اطلاعات چه بايد كرد؟ براي اينكه اهميت اين موضوع را درك كنيد، و ذهنتان نسبت به آن روشنتر شود، مثالي مي‌زنم. 
مي‌دانيد كه مزيت رايانه نسبت به كتاب در چيست؟ آيا در داشتن اطلاعات است؟ يا در يافتن سريع اطلاعات؟ سرچ و جستجو است كه رايانه را بر نسل قبل از خود، يعني كتاب، برتري داده. جستجو يعني پيدا كردن يك حرف، كلمه يا جمله، در انبوهي از جملات، كلمات و حروف. براي اين كار لازم است برنامه‌اي بنويسيد كه بتواند موقعيت كلمه مورد نظر شما را دريابد و آنرا به شما نشان دهد. »
تمرين:
رشته‌اي داريم متشكل از حروف انگليسي، كه نام آنرا string مي‌گذاريم. به نوبت، هر كدام از خصوصيات آنرا امتحان كنيد.

خصوصيات رشته
string.length
طول (تعداد) حروف
  17 
abcdefghijklmnopq 
ABCDEFGHIJKLMNOPQ 
abcdefghijklmnopq 
abcdefghijklmnopq
abcdefghijklmnopq 
abcdefghijklmnopq 
abcdefghijklmnopq 
cdef 
cdefgh 

bbcdefghijklmnopq 

-1 
string.toLowerCase ()
تبديل حروف بزرگ به كوچك
string.toUpperCase () 
تبديل حروف كوچك به بزرگ
string.bold ()
ضخيم (بُلد) كردن حروف
string.italics ()
كج (ايتاليك) كردن حروف
string.fontsize (3)
تغيير اندازه
string.fontcolor ("red")
تغيير رنگ
string.big ()
بزرگ كردن
string.substring (2,6)
انتخاب حروف از حرف 2 تا 6 حرف بعد از اول
string.substr (2,6)
انتخاب حروف از حرف 2 تا 6 حرف بعد از 2
string.charAt (4)
انتخاب يك حرف (حرف چهارم)
string.replace ("a","b")
تعويض دو حرف (حرف b با a)
string.indexOf ("c",1)
جستجوي حرف مورد نظر، بعد از عدد معيّن
string.lastIndexOf ("c",1)
جستجوي حرف مورد نظر، قبل از عدد معيّن
جدول شماره 6
تذكر:
• دو دستور indexOf و lastIndexOf، شماره حرف مورد نظر را مي‌نويسند.
• شمارش آنها از صفر است؛ يعني شماره حرف اول، صفر است، نه يك.
• در صورتي كه كلمه مورد نظر را پيدا نكنند، 1- مي‌نويسند.

متغير محلي و سراسري
اين تقسيم بندي مهم، چون وابسته به مفهوم "تابع" است، و ممكن است گفتن آن در اينجا، باعث سردرگمي شود، در جلسه آينده و بعد از آشنايي با "تابع"، طرح مي‌شود.
معرفي پايگاه
پرديس
• امروز پايگاهي را به شما معرفي ‌ميكنم كه حاوي اخبار و آموزش علوم مختلف رايانه‌اي است. يكي از آموزشهاي آن، جاوا اسكريپت مي‌باشد كه خوشبختانه به زبان ساده‌اي، توسط آقاي صابر كردستانچي، نوشته شده است. شايد با وجود چنان استادي، نيازي به اين وبلاگ نباشد. حتما از آن استفاده كنيد.

پرسش و پاسخ
?پرسش:
سلام. خسته نباشيد. من منظور شما رو از زمان كلي و زمان كامل متوجه نشدم . ميشه براي آنها مثال بزنيد؟ ممنون ميشم. 
و ديگه اينكه اگه براتون امكان داره دستوراتي كه مي‌گيد و از روي همين وبلاگي كه هستيد براش مثال بياريد كه بهتر متوجه بشيم. بازم ممنون. 
راستش فك كنم يه خورده سخت شده يا اينكه من خيلي كم هوشم. ميدونيد من مي‌خوام تمرين كنم ولي همش واسه دستورايي كه نوشتيد نميدونم چيو بايد بنويسم اگه مثال باشه مي‌فهمم كه منظورتون چيه. 
از زحماتتون سپاسگزارم
• پاسخ:
سلام 
1. شايد مطالبي كه گفتم واضح نبود. بنابرين، تغييراتي در متن درس، دادم. لطفا دوباره بخوانيد و اگر مشكلي بود تذكر دهيد. 
2. البته من مثالي را آوردم كه اميدوارم شما آنرا نوشته و اجراء كرده باشيد. آيا اين كار را انجام داده‌ايد؟ چه نتيجه‌اي داشت؟ 
3. نگران نباشيد. اين طبيعي است؛ به مرور - البته با كمك كتابهايي كه معرفي كردم - با مثال و پروژه‌هاي بيشتري آشنا خواهيد ‌شد. شما فعلا همين مثال و تمرينها را به خوبي انجام دهيد تا حفظ شويد. 
خدانگهدار
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 1:0  توسط راهنما  | 

جلسه 9 نه

ثابت و متغير
سلام
 • جلسه امروز ما، درباره دو مفهوم مهم و پركاربرد در برنامه نويسي است؛ يعني ثابت و متغير؛ اما قبل از آنكه وارد بحث شويم، بايد كمي به حرفاي "من درآوردي" گوش كنيد. از اين جهت من درآوردي كه شايد در كتابي نشود به اين صورت، ساده و دسته بندي شده پيدا كرد.

عمليات برنامه نويسي
 • يك عمليات برنامه نويسي، داراي سه بخش، است.
1. دريافت داده. در اين قسمت، اسكريپت، اطلاعاتي را كه نياز دارد، مي‌گيرد.
2. پردازش داده. در اين قسمت، اطلاعاتي كه تهيه كرده، تجزيه و تحليل مي‌كند.
3. نمايش داده. در اين قسمت، اطلاعات پردازش شده را، ارائه مي‌كند.
داخل پرانتز: بعضي از عمليات، آنقدر ساده و بسيط هستند كه نيازي به پردازش ندارند؛ بنابرين، اسكريپت، به محض دريافت اطلاعات لازم، آنرا ارائه مي‌كند؛ بر خلاف بعضي از عمليات، كه بسيار پيچيده هستند.
مثال: يك ماشين حساب را تصور كنيد. طرز كارش چگونه است؟ شما دو عدد را به او مي‌دهد، نوع عمليات را برايش مشخص مي‌كنيد، مثلا جمع؛ ماشين حساب آن عدد و عمليات را پردازش مي‌كند، و نتيجه را در صفحه نمايش به شما نشان مي‌دهد. به اميد خدا در چند جلسه آينده مي‌توانيد به راحتي يك ماشين حساب بنويسيد.

راه دريافت داده
به نظر شما، يك اسكريپت، از چه راهي اطلاعات خود را به دست مي‌آورد؟ به تصور من كه از 3 روش.
1. برنامه نويس. معمولا شما به عنوان برنامه نويس، اطلاعاتي را به او مي‌دهيد. مثلا يك كلمه عبور و پسورد را ذخيره مي‌كنيد، كه اگر كلمه‌اي كه كاربر وارد كرده با آن، يكي بود، اجازه ورود به او مي‌دهد؛ وگرنه با يك پيام خطا، مانع ورود او مي‌شود.
2. كاربر. بعضي از اوقات، كاربر، اطلاعاتي را به برنامه شما مي‌دهد؛ مانند مثال قبلي، كه كلمه‌اي را به عنوان كلمه عبور، وارد كرده.
3. سيستم. در بسياري از مواقع، اين سيستم و رايانه شماست كه منبع اطلاعاتي برنامه است. مثلا براي نمايش زمان و تاريخ، با يك متد ساده، تاريخ مورد نظر را از رايانه، به دست آورده و نمايش مي‌دهيد.

انواع داده (ثابت و متغير)
بعضي از اطلاعاتي كه يك برنامه، به دست مي‌آورد، ثابت (Constant) است، و بعضي، متغير (Variable). متغير به اين معني كه يك چيز ثابت، مشخص و از پيش تعريف شده نيست. آنچه كه برنامه نويس، بيشتر با او سر و كار دارد، متغير است.
مثال:
به مثال قبلي دقت كنيد. به نظر شما كدام قسمت از داده‌ها، ثابت و مشخص است، و كدام، متغير و تعريف نشده؟ كلمه‌اي كه برنامه نويس نوشته، مشخص و ثابت است، و كلمه‌اي كه كاربر، ممكن است وارد كند، نامشخص و متغير. زمان و تاريخي كه از رايانه دريافت مي‌شود، چطور؟ ثابت است يا متغير؟
اميدوارم مطلب، براي شما واضح و ملموس شده باشد.

معرفي متغير و ثابت
بعد از اين مقدمه، بايد ياد بگيريد كه چگونه مي‌شود يك متغير، به زبان برنامه نويسي نوشت. تا اينجاي درس، ميان تمام زبانهاي برنامه نويسي مشترك بوده؛ ولي نوشتن و مشخص كردن ثابت و متغير، در زبانها، مختلف است. مثلا در زبان ويژوال بيسيك و VB Script با Dim، يك متغير را معرفي ‌مي‌كنند و با Const، يك ثابت را. در حالي كه در زبان دلفي، PHP و جاوا اسكريپت با Var، متغير معرفي مي‌شود.
پاورقي: خوشبختانه جاوا اسكريپت در اين زمينه بسيار راحت و ساده برخورد كرده و لازم نيست مانند زبانهاي ديگر، تشريفات خاصي را رعايت كرد.

متغير در جاوا اسكريپت
1. نام گذاري متغير
به اين جمله دقت كنيد و هميشه به خاطر داشته باشيد: " مي‌توانيم براي هرچيزي نامي انتخاب كنيم - مثلا براي اطلاعات، يا متدهاي جاوا - و به جاي آنكه مرتبا اسم بلند و طويل، و گاهي مشكل آن متد را بنويسيم، نامي كه خودمان برايش انتخاب كرديم را صدا مي‌كنيم. "
- يك متغير را در جاوا، بعد از كلمه كليدي var و به اين صورت مي‌نويسند: var name. 
- به جاي name، هر اسمي كه دوست داريد بنويسيد. البته بهتر است اسم انتخابي شما، مناسب با نوع متغير باشد. 
- هر كجا كه var  نوشته شده، مشخص است كه متغيري را مي‌خواهند تعريف كنند.
2. مقدار دهي متغير
- مقدار دهي يعني مشخص كنيم كه اين متغير، برابر با چه داده و اطلاعاتي است. 
- اين كار را با علامت = انجام مي‌دهيم. اول، نام متغير را نوشته، و بعد از آن مساوي، و سپس داده يا متد مورد نظر را يادداشت مي‌كنيم. به اين صورت:
var name = new Date ();
مثال: قرار است - با توجه به مطالب اين درس و درس قبل - برنامه‌اي بنويسيم كه زمان را به ما نمايش دهد.
وسايل مورد نياز:
كد اسكريپت

متد زمان
new Date (), toLocaleString()
متد نوشتن
document.write ( )
با استفاده از اين وسايل و از روشي كه گفته شد - دريافت داده - پيش مي‌رويم.


 
واژه نامه
new Date: متدِ زمان به صورت كلي و مطلق است. بعد از آن بايد نوع زمان خود را مشخص كنيد؛ يعني چه قسمتي از زمان را مي‌خواهيد بدانيد؛ سال، ماه، هفته، روز و ... . به تنهايي چيزي را نشان نمي‌دهد.
toLocaleString: متدي براي به دست آوردن زمان كامل (تاريخ و ساعت) است كه به عنوان خصوصيت، براي زمان كلي استفاده مي‌شود.
document.write: متدي كه براي نوشتن متن در صفحه استفاده مي‌شود.
document.writeln: مانند دستور قبلي عمل مي‌كند؛ با اين تفاوت كه يك فاصله تا رشته قبلي، ايجاد مي‌كند.
; : به اين علامت، سِمي كالـِن گفته مي‌شود كه در پايان هر دستور، مي‌آيد؛ هر چند در جاوا، اجباري نيست.
// : به اين علامت، كامنت (Comment) گفته مي‌شود كه براي نوشتن توضيح، در ميان كدهاي برنامه نويسي است. هر عبارتي كه بعد از اين علامت بيايد، توسط برنامه، خوانده و اجرا نمي‌شود و صرفا ً توضيحي است كه برنامه نويس، يادداشت كرده.
 • اين هم يك هديه، براي شما دوستان. دستور و متدهاي زمان. در آينده با آنها بيشتر آشنا مي‌شويد.
متدهاي زمان
new Date ()
زمان

toLocaleString ()
زمان كامل
toLocaleDateString ()
فقط تاريخ
toLocaleTimeString ()
فقط ساعت
toGMTString()
زمان بين المللي
getYear()
سال
getMonth()
ماه
getDay()
روز هفته
getDate()
روز ماه
getHours()
ساعت
getMinutes()
دقيقه
getSeconds()
ثانيه
جدول شماره 4 
پاورقي: زمان، داراي اجزا مختلف است؛ يعني انسان، آنرا به بخشهاي مختلف تقسيم كرده تا قابل استفاده باشد. قسمتي از آن، تاريخ (سال، ماه، هفته و روز) نام دارد، و قسمتي از آن، به اجزا كوچكتر (ساعت، دقيقه و ثانيه) تقسيم شده، و ساعت، ناميده مي‌شود. البته معيار تاريخ در برنامه نويسي، ميلادي است. براي تبديل به شمسي يا قمري، بايد از برنامه نويسي استفاده كنيد.
تمرين
در مثال قبل، مي‌توانيد به جاي getHours، از متدهاي ديگر استفاده كنيد. پيشنهاد ميكنم هر كدام از آنها را به صورت جداگانه در document.write، قرار داده و نتيجه‌اش را ببينيد.
 
به اميد ديدار
خدانگهدار

+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:59  توسط راهنما  | 

جلسه هشت 8

سلام

Object (شي)
 • هر چيزي كه در صفحه ما وجود دارد، يك شي حساب مي‌شود و مي‌توان از آن استفاده كرد و تغييرش داد. اولين شي موجود، خود صفحه و سند (document) است، كه قبلا با آن آشنا شده‌ايد. 

Properties (خصوصيات)
 • هر شي، يك مشخصات و خصوصياتي دارد كه بيانگر كمّيت و كيفيت آنست. مثلا يك سند، داراي اين خصوصيات است: پس زمينه، عنوان (Title)، نوار وضعيت (Status)، نوار پيمايش (Scroll)، متن (Text)، لينك (Link). بعضي از مشخصات سند را در جدول پايين آورده‌ام. شما اين جدول را براي خود داشته باشيد و هرگاه كه با خصوصيت جديدي آشنا شُديد، به آن اضافه كنيد.
طريقه نوشته: ابتدا نام شي را نوشته، ‌و بعد از يك نقطه، نام خصوصيت مورد نظر را وارد كنيد. گاهي اوقات، آن خصوصيت هم داراي چند خصوصيت ديگر است كه بايد بعد از يك نقطه، نوشته شود.
خصوصيات سند
عنوان
آدرس
آدرس
رنگ پس زمينه
رنگ متن
رنگ لينك
رنگ لينك فشرده شده
رنگ لينك ديده شده
document.title
document.URL
document.location
document.bgColor
document.fgColor
document.linkColor
document.alinkColor
document.vlinkColor
جدول شماره 2
Methods (متُد)
 • کاري که اشياء مي‌توانند انجام دهند، متد ناميده مي‌شود؛ مانند باز كردن يا بستن پنجره. شالوده و اصل يك زبان برنامه نويسي، متدهاي آن برنامه است، كه ما بايد آنها را به خوبي ياد گرفته و در جاي مناسب استفاده نماييم. متدها، توسط سازندگان زبان برنامه نويسي، نوشته و تهيه مي‌شود و ممكن است در نسخه‌هاي جديد آن زبان، تغيير داده شده، اضافه و تكميل شود.
مثال: متد بسته شدن صفحه:
window.close()
Event (رويداد)
 • رويداد، عملياتي است كه كاربر، در يك صفحه انجام مي‌دهد. بعضي از رويدادها مشترك و عمومي هستند و بعضي مخصوص يك شي. بعضي از اين رويدادها را براي شما دسته بندي كرده‌ام كه حتما ذخيره نموده و به مرور آنرا كامل كنيد.
طريقه نوشتن: رويدادها را با كلمه on شروع مي‌كنند و به اين صورت مي‌خوانند: onClick = هنگام كليك كردن. 

رويدادها
عمومي
موس
صفحه كليد
onLoad 
باز شدن
onMousemove
حركت موس
onKeydown
پايين آمدن كليد
onUnload 
بسته شدن
onMouseover 
ورود موس
onKeypress
فشردن كليد
onAbort 
انصراف
onMouseout 
خروج موس
onKeyup
بالا آمدن كليك
onFocuse 
فوكوس، زوم
onClick
كليك


onBlur 
برگشت از فوكوس
onDblclick
دوبار كليك


OnError 
خطا
onDragstart
كشيدن


جدول شماره 3
پرسش و پاسخ
?پرسش:
سلام آموزشت روان و قابل فهمه؛ اما اگر ممكنه مثالهاي عملي بكار ببر؛ يعني فرمان واقعي قابل اجرا مثال بزن. سوالي هم دارم آيا تمام دستوراتي كه در جاوا اسكريپت قابل اجراست - مانند اچ تي ام ال - دستورات مخصوص خودش را دارد؟ موفق باشي.
 • پاسخ:
سلام. تشكر از پيشنهاد شما. چشم، حتي المقدور درس را با مثال عملي، همراه مي‌كنم. اما سوالتان، مسلما اينطور است كه شما گفتيد. جاوا اسكريپت يك زبان برنامه نويسي دقيق و ظريف هست كه دستورات مخصوص به خودش را دارد. البته اين دستورات به صورت كلي، با زبانهاي ديگر مشترك است - مانند دستور if كه در همه زبانها، موجود است - ولي در نوشتن، تفاوتهايي دارد.

به اميد ديدار
خدانگهدار

+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:58  توسط راهنما  | 

جلسه هفت 7

شرط (2)
2. شرط switch
 • switch از ادات ديگر شرط است كه كارايي بالايي دارد، و مانند if عمل مي‌كند؛ هر چند از لحاظ تركيب، تفاوت دارد. اين شرط، زماني به كار مي‌آيد كه مجبور باشيم از چندين شرط، به صورت پي در پي استفاده كنيم. در جلسه قبل، با اَشكال مختلف شرط if آشنا شديد. switch مي‌تواند به جاي انواع پيچيده آن، به كار گرفته شود.

ساختمان switch
switch (متغير)
{
 case 1: مشروط ; break;
 case 2: مشروط ; break;
 case 3: مشروط ; break;
 case 4: مشروط ; break;
 case 5: مشروط ; break;
 default: break;
}

تمرين
مي‌خواهيم برنامه‌اي بسازيم كه در هر روز از هفته، يك پيام دهد. اين برنامه، بسيار مهم و پركاربرد است. با آن مي‌توانيد مثلا براي خود يك تقويم بسازيد كه مناسبتهاي هر روز را به شما نشان دهد؛ يا يك برنامه كه هر روز، يك حديث، شعر يا جملات زيبا را بنويسيد.
كد:
var Now = new Date()
var Week = Now.getDay()
switch (Week)
{
  case 0 : alert("يكشنبه");
  break;
  case 1 : alert("دوشنبه");
  break;
  case 2 : alert("سه‌شنبه");
  break;
  case 3 : alert("چهارشنبه");
  break;
  case 4 : alert("پنجشنبه");
  break;
  case 5 : alert("جمعه");
  break;
  case 6 : alert("شنبه");
  break;
  default : break;
}

تحليل
switch: ادات شرط است. داخل پرانتز، نام متغير نوشته مي‌شود. 
caes: بعد از اين كلمه، شرط ما نوشته شده است. در اين مثال، شرط، همان عددي است كه نمايانگر روز هفته مي‌باشد. 
break: اين كلمه كليدي، در انتهاي هر مشروط، نوشته شود. 
default: اين كلمه كليدي، براي جايي است كه خارج از شرط است؛ يعني شايد جايي باشد كه ما در نظر نگرفتيم و داخل شرطهاي ما نباشد. در اين صورت، شرط، به حالت پيش فرض (default)، مراجعه مي‌كند. 
اين شرط، اين معني را دارد: روز هفته، اگر 1 بود، پيام بده "دوشنبه"؛ اگر 2 بود، پيام بده "سه‌شنبه"؛ الي آخر.

3. شرط سوم
براي اين نوع شرط، هنوز اسمي پيدا نكرده‌ام؛ چون از هيچ كلمه يا حروفي تشكيل نشده است. مي‌شود از آن به جاي شرط (if ... else) استفاده كرد.
variable = (condition)?(true):(false);

value = (a == 1) ? 1 : 0; 
اين شرط را به اين شكل هم مي‌شود نوشت: 
if (a == 1) {value = 1};
else {value - 0}; 
با مقايسه اين دو شرط، متوجه معناي آن خواهيد شد. سعي كنيد يك مثال عملي با اين شرط، بنويسيد.
  
خصوصيات
از خصوصيات و فوايد اين نوع شرط، مختصر و كوتاه بودن آن است؛ و از معايبش اين است كه همه جا نمي‌شود مورد استفاده قرار بگيرد؛ به عبارت ديگر، قدرت و توانايي if را ندارد.
به اميد ديدار
خدانگهدار

+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:58  توسط راهنما  | 

جلسه شش 6

جاواي باهوشسلام
 • بعد از نوشتن اولين دستور برنامه نويسي، بهتر است با مفهوم اين دستورات آشنا شويم. همانطور كه ملاحظه كرديد، ميان يك دستور جاوا با اچ‌تي‌ام‌‌ال، تفاوت است. اچ‌تي‌ام‌ال، يك صفحه ساده و ثابت را به ما مي‌دهد؛ و جاوا، يك صفحه متحرك و هوشمند. با اچ‌تي‌ام‌ال، بدنه و اسكلت يك صفحه (متن، عكس، جدول و فرم) را مي‌سازيم و با جاوا به اين بدن و اسكلت، روح مي‌دميم و آنرا زنده مي‌كنيم؛ تا آن حد كه نسبت به هر عملي، واكنش و عكس العمل مناسبي را نشان مي‌دهد.
مثال: يك فرم ارسال نامه را تصور كنيد. اگر مثلا نام خود يا آدرس گيرنده را اشتباهاً ننويسيد، برنامه، با پيامي اين موضوع را به شما يادآوري مي‌كند. يعني اينكه متوجه عمل شما شده و يك واكنش مناسب، نشان مي‌دهد. در اين جلسه با اين مقوله، يعني هوشمند بودن جاوا، آشنا مي‌شويم.

شرط
تعريف شرط
 • يكي از ابزار و دستورات مهم هر زبانِ برنامه نويسي، شرط است. آيا مي‌دانيد شرط چيست؟ براي درك مفهوم آن، احتياجي نيست به خود زحمت بدهيد؛ چون اين دستور، در زندگي من و شما به وفور يافت مي‌شود. اگر خورشيد درآيد، هوا روشن مي‌شود. اگر درس بخواني، قبول مي‌شوي. 
اگــر دلــي را بـه نالـه آري، ز برق آهش امــان نداري
بلا در افتد به هر چه داري، كه چوب يزدان صدا ندارد
اگر عمري گنه كردي، مشو نوميد از رحمت 
تـو نـام توبه را بنويس، امضـا كردنش با من
به تمام اينها، جمله شرطي گفته مي‌شود. 

ادات شرط
1. if
2. switch ... case
3. variable = (condition) ? true : false
معروفترين ادات شرط، if است.

ساختمان شرط if
 • جمله شرطي، از سه قسمت اصلي، تشكيل شده است.
1- ادات شرط: كلمه‌اي كه شرط را مي‌رساند؛ مانند اگر.
2- شرط: جمله‌اي كه شرطِ انجام كاري، واقع شده.
3- مشروط يا جزا: جمله‌اي كه جزاي شرط و در جواب آن آمده؛ يعني در صورت تحقق شرط، آن نيز به وقوع مي‌پيوندد.
 • در زبان برنامه‌نويسي هم مثل زبان محاوره‌اي، اين سه ركن، رعايت شده. با اين عناصر و طريقه نوشتن آنها، آشنا مي‌شويم.
عناصر شرط، در جاوا:
1- ادات شرط: if
2- شرط: داخل پرانتز (...)
3- مشروط: داخل كروشه {...}
if ( شرط )
 { جزا }; 

توجه: اگر شرط، تنها شامل يك مشروط باشد، نيازي نيست كه آن را درون علامت كروشه { } قرار دهيم.
اهميت شرط
 • اهميت استفاده از شرط در برنامه‌نويسي، به فايده آن، برمي‌گردد. هر چقدر كه استفاده از آن، منفعت داشته باشد، اهميت دارد. اين موضوع را با مثال، توضيح مي‌دهم. 
به اولين دستوري كه نوشتيد دقت كنيد. آنرا در داخل يك صفحه، نوشته‌ايد كه به محض ورود به آن، پيام ديده مي‌شود. اين خوب است ولي كامل نيست. تصور كنيد هر دستور جاوايي كه مي‌نويسيم به محض ورود، نمايش داده شده يا اجرا شود. مثلا شما مي‌خواهيد اگر كاربر، آدرس گيرنده را ننوشت، اخطاري نشان داده شده و مانع ادامه كار گردد. اين دستور بايد كجا قرار گيرد؟ چگونه بايد آنرا كنترل كرد كه هرجا شما خواستيد يا كاربر اشتباهي كرد، اجرا شود؟ اينجاست كه بايد دست به دامن شرط شد. پس از شرط، براي كنترل و تنظيم فرامين، استفاده مي‌كنيم.
حالا همان مثال اولي، يعني نمايش پيام را مي‌خواهيم با كمي كنترل، اجرا كنيم. مثلا اگر رنگ پس زمينه صفحه ما، سفيد بود، بنويسد سفيد:
if (document.bgColor == "#ffffff")
  {alert("سفيد")
  };
حالا اين پيام، در صورتي نمايش داده مي‌شود كه شرط آن، يعني سفيد بودن پس زمينه، محقق شده باشد. البته اين يك مثال بود كه الان به ذهنم رسيد. شما مي‌توانيد شرط يا جزاي ديگري را در نظر بگيريد. 
در جلسه آينده، به اميد خدا، با اقسام شرط آشنا شده و تسلط بيشتري بر دستورات خود، پيدا خواهيم كرد.
واژه نامه:
document = سند، صفحه جاري، پنجره‌اي كه در آن كار مي‌كنيد
document.bgColor = رنگ پس زمينه سند
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:57  توسط راهنما  | 

جلسه چهارم4

اولين دستورسلام
انواع تگ:
1. تگ ساده. بعضي از انواع تگ، يك قسمتي هستند؛ مانند تگ خط (لاين) =
.
2. تگ مركّب. تگهايي كه از دو قسمت شروع و پايان، ساخته شده‌اند؛ مانند تگ خط و متن = . اكثر تگها، به اين شكل هستند. اين نوع تگ هم به دو دسته تقسيم مي‌شود. 
1. تگي كه مي‌توان انتهاي آنرا ننوشت؛ به اصطلاح، آنرا باز بگذاريم. مانند تگ پاراگراف =


2. تگي كه بايد انتهاي آن مشخص و بسته شود. مانند تگ اسكريپت =
داخل پرانتز: چون اين تقسيم بندي، جديد و تجربي است، ممكن است جامع و دافع نباشد، و بشود بهتر از اين تعريف كرد.
متوجه شديم كه تگ جاوا اسكريپت، از نوعي است كه بايد ابتداء و انتهاي آن مشخص شود. ابتداء تگ جاوا را به اين شكل
بعد از ذخيره كردن، آنرا اجرا كنيد. يك كادر، نمايش داده مي‌شود كه بر روي آن نوشته: سلام. اين اولين سلام، از طرف جاوا اسكريپت به شماست؛ و شايد از طرف دنياي برنامه نويسي. حتما متوجه شده‌ايد كه كلمه سلام، به عنوان مثال بود و شما مي‌توانيد هر متن كوتاه يا بلندي را جايگزين آن كنيد.
تذكر: در برنامه نويسي، به كوچك و بزرگ بودن حروف، دقت كنيد.

پرسش و پاسخ: 
?پرسش
سلام. خسته نباشيد. مي‌خواستم بدونم كه دستورهاي جاوا ، در قسمت بدنه هم به كار ميره يا فقط در قسمت سر هستش. و اگر ميشه استفاده كرد مي‌خوام بدونم چه تعدادي از دستورهاي جاوا ميشه در يه صفحه وب استفاده كرد. ممنون ميشم.
 • پاسخ
1. معمولا قسمت سر، براي نوشتن كُدهاي مختلف، مانند جاوا، و قسمت بدنه، براي نوشتن متن، به كار مي‌رود. براي اشتباه نشدن و دسترسي آسان، بهتر است شما هم همين كار را كنيد؛ اما در اكثر اوقات، الزامي براي اين كار نيست. البته گاهي در برنامه نويسي، مواردي پيش آمده كه بايد در قسمت بدنه، دستور جاوا را مي‌نوشتم. 
2. ظاهرا كه محدوديتي در تعداد دستورات جاوا، وجود ندارد.

واژه نامه:
پارامتر (Parameter): مقداري كه براي تگ، نوشته مي‌شود. مثلا براي تگ خط، معيّن مي‌كنيم كه از چه نوعي، به چه اندازه‌اي و چه رنگي باشد. مثال: كلمه ‍Color، در تگ Font، پارامتري است كه رنگ متن را مشخص مي‌كند.
سلام
پارامتر را شايد بتوان اين گونه تعريف كرد كه قيد حالت است براي تگ. تگ اسكريپت، هم داراي پارامترهايي است كه در جلسه بعد به آن، مي‌پردازيم.

معرفي كتاب:
 • نام: خود آموز جاوا اسكريپت در 24 ساعت
Teach yourself Java Script in 24 hours
نويسنده: مايكل مانكر
مترجم: مهندس علي ناصح
ناشر: موسسه فرهنگي هنري ديباگران تهران
نوبت چاپ: اول
قيمت: 3300 تومان
تلفن: 2090001 الي 5
پايگاه اينترنتي: http://www.jsworkshop.com
اين سايت، داراي نكات آموزنده و جالب در علوم مختلف طراحي وب، بالاخص جاوا اسكريپت مي‌باشد. مي‌توانيد مثالهاي كتاب را در اين آدرس با توضيح ديده و از اين آدرس دانلود كنيد.
 • نام:خود آموز سريع جاوا اسكريپت
Java Script For The World Wide Web 2003
نويسندگان: تام نگرينو و دوري اسميت 
مترجم: مهندس حميد رضا ذوقي
انتشارات: ذوقي 
نوبت چاپ: اول
قيمت: 3950 تومان
پايگاه اينترنتي: http://www.javascriptworld.com
در اين پايگاه، علاوه بر مثالهاي كتاب، پايگاه‌هاي كمكي براي زبانهاي وب، نيز معرفي شده است.مي‌توانيد مثالهاي كتاب را در اين آدرس با توضيح ديده و از اين آدرس دانلود كنيد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:56  توسط راهنما  | 

جلسه پنج 5

پارامترسلام
پارامترهاي اسكريپت:
 • تگ اسكريپت، پارامترهايي دارد كه در اين جلسه با آنها آشنا مي‌شويم. به اين خط دقت كنيد:
+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:56  توسط راهنما  | 

جلسه سوم 3

سلامجلسه قبل، مطالب كلي درباره برنامه نويسي، و انواع آن، گفته شده؛ مثل ارتباط زبان جاوا اسكريپت، با زبان سروري. اينبار ميخواهم ارتباط جاوا را با زبان html بيان كنم. 
 • html يك زبان برنامه نويسي نيست؛ بلكه زبان طراحي است. شالوده هر صفحه‌اي كه در اينترنت مي‌بينيد، با اين زبان نوشته شده است. مثلا اين وبلاگ، و همين كلماتي كه من مي‌نويسم و شما مي‌بينيد. اگر بخواهم كلمه‌اي را بنويسم، بزرگ شود، رنگي باشد، لينك داشته باشد، يا يك عكس وارد كنم، يا يك جدول طراحي كنم؛ همه و همه با اين زبان است. متن، كيفيت متن (نوع، رنگ، اندازه)، عكس، جدول، فرم، دكمه؛ به وسيله زبان html نوشته مي‌شوند.

كار با html 
 • نوشتن اين زبان، احتياج به محيط خاصي ندارد. مثلا زبان ويژول بيسيك را بايد برنامه ويژوال بيسيك را نصب، و در محيط آن بنويسيم؛ ولي زبانهاي وب، چنين محدوديتي ندارند. مثلا شما در يك متن ساده (Text)،‌ مي‌توانيد به راحتي، هم HTML بنويسيد و هم Java و هم PHP. 
 • در رابطه با طراحي وب، برنامه‌هايي ساخته شده‌اند كه ما را در هرچه راحتر، سريعتر، و دقيقتر نوشتن، كمك مي‌كنند. مانند "فرانت پيج" (FrontPage) از مايكروسافت، و "دريم ويور" (Dreamweaver) از ماكرومديا، و برنامه‌هاي ديگر. در اين نوع نرم‌افزارها، امكاناتي تدارك ديده شده كه كار با html را آسان و مطمئن كرده‌اند.
1- ويرايشگر قوي: امكان برگشت (Undo)، تا چندين مرحله. رنگي كردن قسمتهاي مختلف كـُد، براي بهتر مشخص شدن دستورات.
2- ويژوالي شدن: ويژوال يعني بصري، ديدني، قابل ديدن. يعني به جاي كدنويسي در يك محيط ساده، براي ساخت يك دكمه، از دكمه‌هاي آماده در اين برنامه استفاده مي‌كنيد. اين نرم‌افزار، عناصر مختلف را به صورت آماده، در اختيار ما قرار داده است. كافي است شما آنها را انتخاب كنيد.
3- كدهاي آماده: بعضي از دستورات متدوال را به صورت آماده، ارائه مي‌كنند.
4- غلط ياب: در صورت اشتباه نوشتن كد، اخطار مي‌دهد.
مثال: براي ضخيم كردن يك كلمه در html ، بايد اين دستور را نوشت:
مثال 
ولي در فرانت پيج، كافي است كلمه مورد نظر را انتخاب كنيد، و در نوار ابزار، آيكون B را كليك كنيد.
داخل پرانتز: در اينجا نه قصد دارم فرانت پيج يا هر نرم افزار ديگري را آموزش دهم، و نه استفاده از آنها را به دوستان تازه كار، توصيه مي‌كنم؛ چون ما را از هدفمان كه يادگيري برنامه نويسي است دور كرده و باعث تنبلي مي‌شود. تنها يك نرم‌افزار را پيشنهاد مي‌كنم كه از مدتها قبل، همراه و يار من در يادگيري و برنامه نويسي بوده. "1st Page 2000". اين برنامه رايگان را مي‌توانيد از اين آدرس دريافت كنيد.

ساختار HTML
يك صفحه وب، از دو قسمت سر (Head) و بدنه (Body) تشكيل شده، كه به اين صورت نوشته و مشخص مي‌شود.
شروع صفحه
شروع سر

پايان سر
شروع بدنه

محتويات صفحه: متن،عكس

پايان بدنه
پايان صفحه
اسكلت اصلي يك صفحه وب، به اين صورت است. 
  
واژه نامه:
كـُد (Code): دستور و فرماني كه به زبان برنامه نويسي، نوشته شده.
تَـگ (Tag): كوچكترين جزء يك كد. مثلا تگ سر = ؛ تگ بدنه = ؛ تگ اسكريپت = . هر تگ بايد در داخل اين دو علامت < >، قرار گيرد.
در جلسه ‌آينده، به اميد خدا، با انواع تگ،‌ آشنا خواهيم شد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:55  توسط راهنما  | 

جلسه 2

آشنايي با برنامه نويسيبرنامه نويسي
اساسا كاربران، براي منتقل كردن دستورات خود به رايانه، از زبانهاي برنامه نويسي ( C، ويژوال بيسيك، دلفي، جاوا اسكريپت)، استفاده مي‌كنند. مثلا براي نوشتن و يك تايپ ساده، بايد برنامه‌اي مانند Word، توسط يك برنامه نويس، نوشته و در اختيارتان قرار گيرد كه بتواند حركات انگشت شما را بر روي صفحه كليد، ترجمه و پردازش كرده، تبديل به حروف كند، و به شما نمايش دهد. به همين صورت است ديدن و طراحي عكس، شنيدن صوت، ديدن فيلم و هزاران كار ديگر، كه در رايانه به راحتي براي شما ميسّر شده است.
 • پس زبانهاي برنامه نويسي، وسيله‌اي هستند براي ساختن برنامه و نرم‌افزار مورد نياز ما. البته اين زبانها با هم تفاوت‌هايي دارند:
1- در سبك نوشتن دستورات
2- در قدرت و محدوده فعاليتشان
3- در محيط اجراء برنامه‌هايي كه ساخته‌اند.
اما تفاوت سوم: اكثر برنامه‌ها، به راحتي، در محيط رايانه خانگي شما و در سيستم عامل ويندوز، قابل اجراء هستند؛ ولي ممكن است در سيستم عاملهاي ديگر، مانند لينوكس، به اين صورت و به اين راحتي نباشد. يا در همين ويندوز خودمان، هر متني قابل ديدن است؛ مانند doc, txt, pdf, htm؛ ولي در محيط اينترنت، پرونده‌هايي از نوع doc و pdf قابل اجراء نيستند، و بايد اول آنها را دانلود كنيم و بعد در رايانه ببينيم. تنها برنامه و پرونده‌اي قابل اجراء و استفاده است كه با زبان html  همخواني و سازگاري داشته باشد.
داخل پرانتز: تا همين چند وقت پيش، در محيط وب، حتي عكس هم قابل ديدن نبود؛ ولي الانه با قدرتمند شدن بُرازرها و جستجوگرهاي اينترنت، حتي مي‌توانيم بعضي از انواع فيلم را در اينترنت ببينيم.
 • پس به طور كلي مي‌توانيم برنامه‌هاي خود را به دو گروه، تقسيم كنيم:
1- برنامه‌هايي كه در محيط رايانه، استفاده مي‌شوند.
2- برنامه‌هايي كه در محيط وب و اينترنت قابل استفاده هستند.
 • با جاوا اسكريپت، مي‌توانيم برنامه‌اي بنويسيم كه هم در رايانه و هم در محيط اينترنت، قابل اجراء باشد. البته زادگاه اصلي آن، اينترنت است.

پاورقي: در اينترنت، زبانهاي مختلفي به وجود آمده‌اند كه همين تفاوت (محيط اجراء) را با هم دارند: 
1- بعضي از آنها در طرف كاربر و كلاينت (Client) - يعني شما كه از اينترنت استفاده مي‌كنيد - اجراء مي‌شود. JavaScript, JScript, VBScript.
2- بعضي از آنها در طرف سرور (Sserver) - يعني سايتي كه شما از آن استفاده مي‌كنيد - اجراء مي‌شود. asp, php.
 • جاوا اسكريپت، از آن دسته از زبانهاست كه در طرف كاربر، عمل مي‌كند. با دو مثال، موضوع را براي شما روشنتر مي‌كنم.
1- يك ساعت را تصور كنيد. اگر با جاوا اسكريپت، نوشته شود، زمان را طبق ساعت رايانه شما نشان خواهد داد؛ ولي اگر با برنامه‌اي مانند asp - كه زبان سروري است - نوشته شود، زمان رايانه سرور را نشان خواهد داد كه ممكن است با زمان شما، تفاوت داشته باشد.
2- يك فرم نظرخواهي را تصور كنيد. در رابطه با اين فرم، دو كار انجام مي‌شود.
- اطلاعات از شما گرفته، و براي سايت مورد نظر فرستاده شود. اين بخش از كار را، جاوا انجام مي‌دهد.
- اطلاعات فرستاده شده، در يك بانك، ذخيره شود. اين بخش از كار، به عهده زبان سروري مي‌باشد.
 • بنابرين جاوا اسكريپت، يک زبان برنامه نويسي مي‌باشد که به وسيله آن مي‌توان بين کاربر و سايت ارتباط برقرار نمود. 
توجه: استفاده از جاوا اسكريپت در صفحات وب، نيازي به نوشتن اسکريپتها نداشته، و مي‌توانيد اسکريپتهاي موجود در شبکه اينترنت را کپي و در مکان مورد نظر، با ايجاد تغييرات مورد نياز، استفاده کنيد؛ اما در صورتي که يک برنامه نويس باشيد، خواهيد توانست اسکريپتهاي مورد نظرتان را بنويسيد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:54  توسط راهنما  | 

جلسه اول

گام اول سلام
كاش در دهكده عشق فراواني بود
توي بـازار صداقت كمي ارزاني بود

كاش اگر گاه كمي لطف به هم ميكرديم
مختصــر بود ولــي ســاده و پنهـاني بـود
پنجشنبه، 19 آذر، 1383
اين وبلاگ را براي راه افتادن چندتا از دوستان، باز كردم. هم تشويقي براي شروع به كار آنها باشد و هم مرجعي براي جواب سوالهايشان. قصدم اين نبود كه زبان جاوا اسكريپت را به طور كامل، تدريس كنم. با وجود سايتهاي معتبر و تخصصي خارجي و ايراني، جايي براي چنين ادعايي نيست. ولي گاهي اوقات، اثري كه يك درس خصوصي و چند نفره داره، يك كلاس عمومي، نخواهد داشت.
هر كسي براي خودش در آموختن و آموزاندن، راه و روشي دارد. روشي كه من انتخاب كردم:
گام اول، ذكر چند مرجع است. يعني چند سايت، كتاب و سي‌دي آموزشي در اين رشته رو معرفي مي‌كنم. اين مراجع، به طور كلي مي‌توانند شروع و استارت خوبي براي ما باشند. در راهي كه ديگران رفتند، تجربه كردند و مطمئن هست، حركت مي‌كنيم.
گام دوم، معرفي يك كتاب، به عنوان مدار اصلي درس، است. يعني ما، حول همين كتاب و طبق فصول و ابوابش، پيش مي‌رويم. از مطالب خوبش استفاده كرده و اگر كم و كاستي داشت، با هم كاملش مي‌كنيم.
گام سوم، مطالعه و تحقيق شما. 
گام چهارم، ممكنه در ضمن مطالعه، برايتان سوالهايي پيش بياد، كه من در خدمتتان هستم. البته فكر نكنم به راحتي و حاضر و آماده، بشود جواب سوالي را از من بگيريد. اگر براي اولين بارست كه با اين مساله روبرو مي‌شويد، شما را راهنمايي مي‌كنم به منابعي كه در دسترس است. اگر قبلا آن را خوانديد و فراموش كرديد، سعي مي‌كنم يادآوري كنم. با اين كار، خود شما، جواب سوالتون را به دست مي‌آوريد و لذتي كه مي‌بريد، بيشتر از خوردن يك غذاي كنسروي و آماده است. بله، اگر در نهايت، متوجه پاسخ نشوديد يا اشتباهي در ضمن كار به وجود آمد، ...
داخل پرانتز: اين كار، چون از راه دور و غير حضوري است، خسته كننده، طولاني و گاهي اوقات نااميد كننده مي‌شود. تنها چيزي كه مي‌تواند در اين مواقع به ياري شما بياد، فراموش نكردن هدف اصلي، و صبر و استقامت است. پس با نام خدا، آستين همت، بالا زده و شروع مي‌كنيم.
چند مرجع (سايت) :
 • ايران JavaScript: فارسي. از سايت‌هاي فارسي زبان كه تخصصا درباره اين زبان، فعاليت مي‌كند. قسمتي از آن به آموزش، و قسمتي به بيان مثال، مي‌پردازد.
 • استاد آنلاين: فارسي. علوم مختلف رايانه‌اي را به شما آموزش مي‌دهد كه جاوا يكي از آنهاست.
 • Learn JavaScript: انگليسي. سايت w3schools ، مرجع بسيار جامع و جالبي است براي بسياري از علوم رايانه‌اي. يكي از امكانات جالب آن، ايجاد محيطي براي تمرين آنلاين است. يعني در همين سايت، مي‌توانيد هر درسي را تمرين، اجراء و نتيجه آنرا ببينيد.
 • JS Workshop: انگليسي. يك مخزن عالي با مقادير زيادي اسكريپت و مسألهاي فراوان براي يادگيري جاوا اسكريپت.
 • Pagere Source: انگليسي. هرآنچه را كه براي طراحي وب، لازم است، در چند بخش، به شما آموزش مي‌دهد. 
1- HTML Tutorials 
2- JavaScript Tutorials 
3- DHTML/Style Sheets
4- CGI/Perl
5- Web Design Articles
در هر بخش، با مسائل طبقه بندي شده روبرو مي‌شويد.
به اميد ديدار
خدانگهدار


+ نوشته شده در  چهارشنبه بیست و هفتم آذر 1387ساعت 0:54  توسط راهنما  |