جاوا اسکریپت

جاوا اسکریپت

مقاله کامل درباره جاوا اسکریپت





مقدمه :









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





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





جاوااسكريپت چيست؟





وب جهاني (WWW)،درابتدا رسانه اي محسوب مي شد كه چيزي بيش از متن در
خود داشت.





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





1ـ1)اصول اسكريپت نويسي درصفحات وب :





  اساساً انسانها براي انتقال دادن دستورات خود به
كامپيوتر از زبانهايC,Basic وجاوا استفاده ميكنند.اگرشما باHTML آشنا باشيد بايدگفت حداقل يك زبان كـامپيوتري رامي
شناسيد.به كمك دستورات زبانHTML مي توان با ساختار يك صفحه وب را تعريف كرد.مرورگر
با اطـاعت از اين دستورات ظاهر صفحه رابراساس ساختار مورد نظر تنظيم مي نمايد.





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





اكثرزبانهاي برنامه نويسي پيچيده هستند.درمقابل،
زبانهاي اسكريپتي معمولاً ازساختاربسيارساده تري برخوردار هستند.دراين زبانها
ميتوان به كمك دستوراتي ساده،برخي ازعمليات موردنظررابانجام رساند.زبانهاي اسكريپتي





 نداشته مي شوند.چنين سندي ميتواند يك HTML تركيب شده ومجموعه آنها در يك سندHTML
 وب با دستورات صفحه ديناميك وب ايجادكند.





2ـ1)اسكـريپتهاو برنامه ها:





دستورات جـاوااسكـريپت براي
اجرا شدن به يك مرورگر وب (Web Browers)
و يابه طور كلي به يك نرم افزار مفسر جاواسكريپت (JavaScript Interpreetr) نياز دارند. بعضي از زبانهاي برنامه نويسي
بايد قبل از اجرا به كدهاي زبان ماشين ترجمه شده و يا اصطلاحاً كمپايل شوند .





در مقابل ، دستورات
جاوااسكريپت در هنگام اجرا تفسير مي گردند. به عبارت ديگر مرورگر با خواندن هر يك
از اين دستورات آنرا تفسير و اجرا مي نمايد.





زبانهايي كه تفسير مي شوند
يك مزيت بزرگ دارند و آن اين است كه نوشتن و يا تغيير دادن دستـورات HTMLچنين زباني بسيارساده است .مثلاً تغيير يك برنامه
جاوااسكريپت به سادگي تغيير دستورات دريك سند HTML مي باشد اين تغيرات به محض بار شدن مجدد سند در صفحه وب اعمال
خواهند شد.





3ـ1)معرفي جـاوااسكـريپت:









جـاوااسكـريپت براي اولين
باربه وسيله شركت نت اسكيپ توسعه يافته ودرمرورگرnetscapenavegator  به
كار گرفته شد . اين زبان،اولين زبان اسكـريپتي در عرصه وب به شماررفته و همچنان پر
استفاده ترين زبان اسكـريپتي ميباشد.





جاوااسكريپت در ابتداlivescript نام داشت ودرسال 1995درنسخه دوم netscapenavigator به كارگرفته شد سپس به جهت رابطه اي كه با
جاوا برقرار نمود جـاوااسكـريپت نام گرفت.





4ـ1)قابليتهاي جـاوااسكـريپت:





1.افزودن پيغامهاي متحرك و
متغير به نوار وضعيت (status
bar )
مرورگر.





2.بررسي محتويات يك
پرسشنامه و انجام عمليات لازم بر روي آن قبل از ارسال پرسشنامه به سوي سرويسگر .





3.نمايش پيغامهاي دلخواه
بـراي كـاربرچه از داخل صفحه وب و چه ازطريق پنجره هاي هشـدار         (Alert windowse ) ساخت انيميشن و يا تصاويري كه در اثر حركت يا
كليك كردن موس تغييرمي يابند.





4.تشخيص نوع مرورگر و نمايش
دادن مطالب بر اساس آن.





5.تشخيص برنامه هاي اتصالي
نصب شده و هشدار به كاربر در صورت نياز به يك برنامه اتصالي خاص.





موارد بالا تنها نمونه هاي
اندكي از قابليتهائي هستند كه جاوااسكريپت مي تواند به يك صفحه وب بيفزايد.





با استفاده از اين زبان مي
توان برنامه هاي كاملي را در يك صفحه وب خلق كرد . ما در اين تحقيق سعـي





 مي كنيم به آموزش اين زبان بپردازيم.





5ـ1)تفاوتهاي جـاوا و جـاوااسكـريپت:





اين دو زبان ذاتاً با
يكديگر متفاوتند . مهمترين اين تفاوتها عبارتند از :





1.اپلتهاي جاوا براي اينكه
بتوانند در يك مرورگر وب اجرا شوند ، بايد كمپايل شده و به فايلهايي با پسوند class تبديل شوند . در مقابل جـاوااسكـريپت از دستورات متني استفاده
كرده و مي توانددر يك سند HTML نوشته شود.





2.اپلتهاي جـاوا معمولاً در
يك پنجره يا يك قسمت جداگانه از صفحه اجرا مي شوند ولي دستورات جـاوااسكـريپت
ميتواند بر روي هر قسمت از صفحه وب تأثيربگذارند.





3.در حالي كه جـاوااسكـريپت
براي نوشتن برنامه هاي ساده، افزودن قابليتهاي ديناميك و ايجاد رابطه متقابل با
كاربران بسيار مناسب است، به كمك جـاوا مي توان برنامه هايي كاملاِ پيچيده خلق
كرد. براي مثال يك نسخه از پردازشگر متنcorels wordperfect  كه با استفاده از جـاوا نوشته شده در دسترس قرار
دارد .





بايد گفت انجام چنين پروژه
اي به كمك جـاوااسكـريپت كاملاً غير ممكن است .علاوه بر موارد مذكور،تفاوتهاي
زيادديگري بين اين دوزبان وجود دارد .به هرحال نكته مهم اين است كه به خاطر داشته
باشيد جـاوااسكـريپت و جاوا دو زبان كاملاً متفاوت هستند.هر دوي اين زبان درموارد
خاصي مفيد هستند و حتي ميتوان از هر دوي آنها در يك صفحه وب استفاده كرد .





6ـ1)چگونه جـاوااسكـريپت در يك صفحه وب قرار
ميگيرد ؟





همانطوركه ميدانيدypertext Markup LanguageHTML  زبان
خلق صفحات وب ميباشندبراي يادآوري ليست زير را در نظـربگيريد.ايـن ليست يك سندHTML ساده با يك عبارت جاوااسكريپت رانشـان ميدهد:





<HTML>





<HEAD>





<TITLE>OUR HOME  PAGE</TITLE>





<BODY>





<H1>THE  SOCIETY</H1>





<P>WELCOME TO OUR WEB PAGE.
UNFORTUNATELY.</P>





<SCRIPT LANUAGE=”JAVASCRIPT”>





DOCUMENT.WRITE(DOCUMENT.LASTMODIFIED);





</SCRIPT>





</BODY>





</HTML>





اين سند ،از يك قسمت سر (Head) ، كه بيـن دستورات <head > …</head>  قرار گرفته،ويك قسمت بدنه (Body) ، كه بـه وسيله دستورات<body>…</body>  مشخص
گرديده ،تشكيل شـده است. بـراي افـزودن دستورات جـاوااسكـريپت به يك صفحه ،بايد از
دستور <script> بهره جست.





دستور<script>
به مرورگرميفهماند كه ازاين قسمت سند،تاهنگامي كه به دستـور پاياني</script> برخورد كند،با دستورات جاوااسكريپت مواجه
خواهد شد.در اكثر موارد،استفاده از عبارات جـاوااسكـريپتي در خارج از محدوده دستور
<script>مجاز نميباشد





بويژگيlanguage كه
دركناردستور<script>
 واقع شده است توجه كنيد.ويژگي language= Javascript  به
مرورگـر ميفهماند كه زبان اسكريپتي اين قسمت از سند،جـاوااسكـريپت مي باشد . به
همـراه اين ويژگي، همچنين ميتوان شماره نسخه جـاوااسكـريپت را ذكر كند.





خلق يك اسكـريپت:





جاوااسكريپت يك زبان اسكريپت نويسي در صفحات وب
است . دستورات جاوااسكريپت را ميتوان مسـتقيماً درداخـل سندHTML قرار دادواين اسكريپتهادرهمان هنگام كه صفحه وب در مرورگـر به
نمـايش در ميآيد  اجرا خواهند شد .





1ـ2)ابزار اسكريپت نويسي:





ابزار اسكـريپت نويسي بر خلاف اكثرزبانهاي برنامه
نويسي، براي نوشتن جـاوااسكـريپت به نرم افزارخاصي نياز نداريد.در واقع ، به
احتمال زياد شما تمامي ابزار لازم براي استفاده از جاوااسكريپت را در اختيـار
داريد .بـه طور كلي، اوليـن ابـزاري كه براي كار با جاوااسكريپت لازم است ،يك
ويرايشگرمتن(Text
E ditor)  ميباشد . برنامه هاي جاوااسكريپت درقالب فايلهاي
متني سـاده ومعمولاً بصورت جزئي ازيك سند HTML
ذخيره مي گردند . بنابراين كه بتواند فايلهاي متني ASCII راويرايش كند،براي اين كار مناسب خواهد بود.





به هر حال شما مي تواند از بين ويرايشگرهاي
متعددي كه دردسترسي قرار دارند (از يك ويرايشگر متن بسيار ساده گرفته تا
پردازشگرهاي پيچيده) يكي را انتخاب كرده و بدين منظور استفاده نماييد. براي مثال
ميتوانيد از نرم‌افزار Notepad كه در اكثر محيطهاي ويندوز در دسترس قرار
دارد بهره بگيريد.





توجه داشته باشيد كه اگر از يك پردازشگر پيچيده
متن، براي خلق برنامه‌هاي جاوااسكريپت استفاده مي‌كنيد، بايد برنامة خود را در
قالب يك فايل متني ASCII ذخيره نماييد.





بسياري از پردازشگرهاي متن از ساختارهاي پيچيده‌تري
به منظور ذخيره‌سازي فايلهاي خوداستفاده مي‌كنند.





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





2ـ2)آغاز خلق اسكريپت :





براي نوشتن يك اسكريپت در سندHTML،بايد از دستور<script>
استفاده كنيد.بعبارت ديگريك اسكريپت را بايد بين دستورات آغازين و پاياني <script>…</script> قرار دارد.





بخاطرداشته باشيدكه بين دستـورات آغازي وپاياني<script>…</script> هيچ چيز بجزعبارتهاودستورات  جاوااسكـريپت قرار ندهيد. حتي اگر در اين بين
يك دستور مجازHTML نيزوجودداشته باشد ، مرورگريك پيغام خطا
نمايش خواهد داد.





بررسي قابليتهاي جاوااسكريپت:





1.زيباتر كردن ظاهر يك صفحه وب به كمك
جاوااسكريپت





2.خلق پيغامهاي متحرك





3.قابليتهايي كه جاوااسكريپت در مورد تصاوير و
انيميشن‌ها در اختيار ما مي‌گذارد.





4.استفاده از جاوااسكريپت براي ارزيابي محتواي
پرسشنامه‌ها





5.تشخيص نوع مرورگر به كمك جاوااسكريپت





6.استفاده از جاوااسكريپت براي كار با برنامه‌هاي
اتصالي





7.خلق برنامه‌هاي پيچيده‌تر به كمك جاوااسكريپت





8.چگونه مي‌توانيم يك اسكريپت را از يك صفحه ديگر
به صفحه وب خود منتقل كنيم.





1ـ3)زيباتركردن ظاهر يك صفحه وب به كمك جاوااسكريپت :




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





1ـ1ـ3)استفاده از نوار وضعيت:




نوار وضعيت (Status bar) پايين‌ترين قسمت پنجره يك مرورگرراتشكيل ميدهدكه معمولاًبه رنگ
خاكستري ديده مي‌شود. مهمترين نقشهايي كه اين نوار به عهده دارد شامل موارد زير مي‌باشد:





1.نمايش توضيحات مربوط به منوها و يا ساير ابزار
مرورگر





2.نمايش URL
پيوندهايي كه نشانه‌گر موس بر روي آنها قرار داده مي‌شود.





3.نمايش وضعيت يا عملكرد فعلي مرورگر در حالي كه
كاربر به مرور صفحات وب مي‌پردازد.





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





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





2ـ3)كار با برنامه‌هاي اتصالي:




برنامه‌هاي اتصالي(Plug-inها)‌برنامه‌هاي كوچكي هستندكه به مرورگراضافه شده
وآنرا قادرميسازند فايلهايي باساختارهاي متفاوت رادرصفحه وب اجرا نمايد.برنامه‌هاي
اتصالي متعددي دردسترس قراردارند.ازبرنامه‌هايي 
براي اجراي فايلهاي صوتي و ويدئويي گرفته تابرنامه‌هاي نمايش واقعيت مجازي
همگي موجود مي‌باشند.





 چهار
برنامه اتصالي مشهور عبارتند از:





1.RealAudio




2.QuickTime




3.Adobe Acrobat




3.ShockWave





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





  1. از برنامه اتصالي
    دلخواه استفاده كنيد و از تمامي كاربران بخواهيد آنرا برداشت و نصب نمايند.
  2. صفحات جايگزيني
    براي كاربراني كه برنامه اتصالي مورد نظر شما را ندارند طراحي كنيد.




بكمك جاوااسكريپت مي‌توان وجودياعدم وجود بـرنامه
اتصالي مورد نظرراتشـخيص داده وصفحه‌اي مناسب رابه كاربرعرضه كرد.درصورت عدم وجود
بـرنامه اتصالي دلخواه،مي‌توانيدكاربررا به صفحه‌اي براي برداشت آن برنامه اتصالي
هدايت نماييد.





علاوه بر تشخيص نوع برنامه‌هاي اتصالي،
جـاوااسكـريپت مي‌تواند با اين برنامه‌ها ارتباط برقرار كرده و آنـها را كنترل
نمايد. نت اسكيپ اين قابليت را LiveConnect
ناميده است.





برنامه‌هاي جاوااسكريپت چگونه كار مي‌كنند؟





در اين قسمت بااصول اوليه زبان جاوااسكريپت
واجزاء اساسي آن كه تقريباًدر هربرنامة جاوااسكريپت وجود دارند، آشنا خواهيد شد.





بطور خلاصه در اين قسمت مطالب زير را مي‌آموزيد:





1.سازماندهي اسكريپتها به كمك توابع





2.اشياء چيستند و جاوااسكريپت چگونه آنها را بكار
مي‌برد.





3.جاوااسكريپت چگونه به حوادث پاسخ مي‌دهد.





4.مخفي كردن دستورات جاوااسكريپت از مرورگرهاي
قديمي





5.استفاده از يك جايگزين جاوااسكريپت، براي
مرورگرهاي قديمي





1ـ4)توابع در جاوااسكريپت:





 درواقع،مرورگراولين دستوري راكه پس از<script> قرارداشت اجراكرده سپس خط به خط، سراغ
دستورات بعدي مي‌رفت تا به دستور پاياني <script> برخورد كند.





گرچه اين روش، براي اسكـريپتهاي كوتاه، كاملاً
قابل درك و ساده مي‌باشد. اما براي يك اسكـريپت طولاني مي‌تواند گيج‌كننده محسوب
شود. جـاوااسكـريپت از قابليتي بنام (توابع) پشتيباني مي‌كند كه به سـازماندهي
بيشتر اسكريپتها كمك مي‌نمايد.





تعريف يك تابع :





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






ليست
1-1تعريف يك تابع

Function Greet()   {
Alert(“Greetings.”);
}




در اين ليست تابعي تعريف شده است كه مي‌تواند يك
پيغام هشدار (Alert
Message) را
نمايش دهد. بطور كلي براي تعريف يك تابع، ازعبارت function استفاده مي‌شود. پس ازاين عبارت، نام تابع(دراينجا Greet) قرار مي‌گيرد. به پرانتزهايي كه پس از اين نام قرار دارند توجه
كنيد. در صفحات آينده خواهيد ديد كه فضاي بين اين پرانتز‌ها هميشه خالي نمي‌باشد.





سپس، علامتهاي كروشه }) و ({
در ابتدا و انتهاي دستوراتي كه آن تابع را تشكيل مي‌دهند قرار داده مي‌شوند.
مرورگر به كمك اين علامتهامي‌تواندابتداوانتهاي تابع را تشخيص دهد.تابع مثال فوق،
تنها ازيك دستور alert (كه يك پيغام هشدار را نمايش مي‌دهد) تشكيل
شده است. در مورد پرانتزهايي كه در مقابل نام تابع مشـاهده كرديد، بايد گفت
پـارامترهايي كه براي يك تابع فرستاده مي‌شوند در اين بين قرار مي‌گيرند. در اين
مثال تابع Greet هميشه يك عمل خاص را انجام مي‌دهد: اين تابع
پيغام “Greetings.” را براي كاربر نمايش ميدهد.





 اگر مي‌خواهيد
تابع شما قابليت انعطاف‌پذيري بيشتري داشته باشد، مي‌توانيد پـارامترهايي را براي
آن تعريف كنيد. به اين پارامترها، آرگومان (Argument) نيز گفته مي‌شود.آرگومانها،متغيرهايي هستند كه هر بار كه تابع صدا
زده مي‌شود، براي آن ارسال مي‌گردند. براي مثال مي‌توانيد پارامتري بنام who را براي تابع مثال فوق در نظر بگيريد. تصور كنيد كه اين پارامتر
نام شخصي را كه قصد داريد پيغام خوش‌آمدگويي را براي او بفرستيد





 در
بردارد.





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





2ـ4)اشياء در جاوااسكريپت :





بايد گفت جاوااسكريپت علاوه بر متغيرها، از اشياء
(Objects) نيز پشتيباني مي‌كند. اشياء نيز همانند
متغيرها مي‌توانند داده‌ها را ذخيره نمايند؛ اما برخلاف متغيرها قادرند در يك مزان
چند داده مختلف را در خود ذخيره كنند.داده‌هايي كه در يك شيء ذخيره مي‌گردنـد،
خاصـيتهاي (Properties) آن شيء ناميده مي‌شوند. مثـلاً مي‌توان
اطلاعات مربوط به افراد از جمله نـام، آدرس، و شماره تلفن آنها را در قالب يك شيء
كه Bob نـام دارد و به منظور ذخيره‌سازي داده‌هاي
مربوط به فردي بنام Bob تعريف شده است، مي‌توانند Bob.address





و Bob.phone
باشند.





اشياء همچنين ممكن است داراي يك يا چند متد (Method) باشند. متدها توابعي هستند كه عمليات خود را





بر روي داده‌هاي شيء مربوط به خود انجام مي‌دهند.
براي مثال شيء‌ مربوط به افراد، ممكن است شامل متدي بنام display() شيء Bob، عبارت Bob.display() بكار برده مي‌شود.





1ـ2ـ4)جاوااسكريپت از سه نوع شيء پشتيباني مي‌كند:





1.اشياء درون ساخت (Built-in): اشيايي هستند كه در داخل جاوااسكريپت و به عنـوان جزئي از اين
زبان منظور شده‌اند. مثال Dateو Math و Array و String.





2.اشياء مرورگر: اشيائي هستند كه نماينـده اجزاء
مختلف مرورگر و سند HTML موجود هستند. مثلاً تـابع alert()، در واقع متدي از شيء window
مي‌باشد.





اشياء اختصاصي تعريف شونده (Custom): اشيايي هستند كه توسط طراح صفحه تعريف مي‌گـردند.





 براي
مثال شما مي‌توانيد يك شيء Person))
تعريف كرده و همانند مثال گذشته، اطلاعات مربوط به افراد





را در آن ذخيره نماييد و يا توابعي براي كار با
اين اطلاعات طراحي كنيد.





3ـ4)كنترل حوادث:





همه اسكريپتهادرداخل دستورات<script> قرارنميگيرند.درواقع اسكريپت راميتوان عنوان
كنترلگرحوادث نيز بكاربردگرچه اين عبارت، يك اصطلاح برنامه‌نويسي است اما دقيقاً
بهمان معني لغوي خودميباشد:كنترلگرهاي حوادث اسكـريپتهايي هستند كه حوادث (Events) را كنترل مي‌كنند.





كنترل حوادث در جـاوااسكـريپت نيز روش مشابهي
دارد:





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





بسياري از حوادث جاوااسكريپت (از جمله كليكهاي
موس) بوسيله كاربر ايجاد مي‌گردند. با رديابي حوادث





و واكنش نشان دادن نسبت به آنها، مي‌توان
روندعادي اجراي اسكريپتها را رها كرده و روتين مفسر اسكريپتها





را به يك اسكـريپت جديد هدايت نمود.نيازي به
تـذكر نيست كه اين تكنيك جزء اساسي اكثـر برنـامه‌هاي جاوااسكريپت را تشكيل مي‌دهد.





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





<img src=”button.gif”  onMouseOver=”highlight();”>       





همانگونه كه مشاهده مي‌كنيد عبارتonMouseOver،بصورت يك ويژگي (Attribute) دركناردستور img ذكر
شده است. اين كنترلگرهاي حادثه كه بصـورت يك ويـژگي به همراه دستورات HTML قرار ميگيرند، “ويژگيهاي
حادثه‌اي” (Event Attribute)
ناميده مي‌شوند. اين قسمت، مكان ايده‌آلي براي استفاده از توابع محسوب مي‌شود زيرا
بكار بردن نام توابع، كاملاً ساده است و از طرف ديگر مي‌توان مجموعه‌اي از دستورات
اسكـريپتي را در قالب يك تابع تنظيم كرده و در اثر فعال شدن حادثه مورد نظر، آنها
را اجرا نمود.





4ـ4)مخفي كردن اسكـريپتها از مرورگرهاي قديمي :





هنوز كاربران زيادي وجود دارند كه از مرورگرهايي
استفاده مي‌نمايند كه با جاوااسكريپت ناسازگار هستند از





آن مهمتر، تعدادي از كاربران گزينه “پشتيباني از جـاوااسكـريپت”
را در مرورگر خود خاموش كرده‌اند تا از مشكلات ايمني برخي از صفحات وب در امان
باشند.





از آنجائيكه مرورگرهاي قديمي دستور> < script
را نميشناسند، نمي‌توانند آنرا تفسير نمايند. در اكثر مـوارد، اين مرورگرها به جاي
تفسير اسكـريپت، متن آنرا در صفحه نمايش مي‌دهند.





براي جلوگيري ازاين مشكل،مي‌توان اسكريپت‌ها
رادرداخل دستورات توضيح HTML (Comment Tags)
قرار داد.با اينكار مرورگرهاي قديمي آنرا ناديده گرفته و نمايش نخواهند داد.از طرف
ديگر،مرورگرهاي جديد مي‌دانندكه دستورات توضيحي كه دربين دستورات آغازين و پاياني> < script
منظور شده‌اند،تنهابراي مخفي كردن اسكـريپت از ديد مرورگرهاي قديمي‌تر در نظر
گرفته شده‌اند و لذا به تفسير اسكـريپت ادامه مي‌‌دهند. همانطوري كه مي‌دانيد براي
نوشتن يك توضيح در سند HTML  (كه
بايد توسط مرورگر ناديده گرفته شود) كافي است علامت<!--را درابتداوعلامت - -> را در انتهاي آن قرار دهيد. علاوه بر دستورات آغازين و پاياني
توضيح درHTML، علامت// نيز به چشم مي‌خورد.اين علامت، دستور توضيح در جـاوااسكـريپت را
تشكيل مي‌دهد. درواقع با اينكار دستور پاياني توضيح يعني- -> را از ديد مفسر جـاوااسكـريپت نيز مخفي نموده‌ايم.





استفاده از مقادير و ذخيره‌سازي آنها :





1ـ5)انتخاب نام براي متغييرها:





متغيرها را ميتوان يك“مخزن”براي ذخيره‌سازي
داده‌ها(مانند يك عدد، يك عبارت متني، يا يك شيء) دانست. همانگونه كه در فصول
ابتدايي اين كتاب آموختيد، هر متغير با يك “نام” شناخته مي‌شود. بطور كلي به منظور انتخاب
نام براي يك متغير، قوانين زير بايد در نظر گرفته شوند:





1.نام متغيرها مي‌تواند شـامل حروف الفبا (هم
حروف بزرگ و هم حروف كوچك) باشد. همچنين اين نامها مي‌توانند شامل اعداد (از صفر
تا نه) و نيز كاراكتر underscore (-) باشند.





2.نام يك متغير نمي‌تواند شامل حروف فاصله (space) و يا كاراكترهاي مربوط به نقطه‌گذاري باشد.





3.اولين حرف از نام يك متغير بايد از يك حرف
الفبا و يا يك علامت underscore (-) تشكيل شده باشد.





3.حروف بزرگ وكوچك ازديدمفسرجاوااسكريپت تفاوت
دارند. بنابراين متغيرهاي totanum، Totalnum





و TotalNum
يكسان نمي‌باشند.





4.از نظر تئوري، هيچ حد خاصي براي طول نام يك
متغير درنظرگرفته نشده است ولي درعمل، طول آن نبايد





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





بهترست از نامهايي براي متغيرهاي استفاده كنيد كه
بعداً به سادگي بتوانيدآنها را به خاطر آوريد.گرچه انتخاب نامهايي مانند x2,x1,x,b,a براي متغيرها ممكن است در وهله اول ساده‌تر
بنظر برسد، اما توجه داشته باشيد كه اين نامها راممكن است بسرعت فراموش
كنيد.بنابراين به شما توصيه ميكنيم نامهايي طولاني‌تروبه يادماندني‌تر براي
متغيرهاي خود برگزينيد.





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





total_number_of_fish   





LastInvoiceNumber





Templ





a





_var39





2ـ5)انواع
داده‌ها در جاوااسكريپت :





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





1ـ2ـ5)انواع اساسي داده‌هاي جاوااسكريپت :





1.اعداد: مانند3، 25ويا414218/1جـاوااسكـريپت هر
دو نوع اعداد صحيح و اعشاري را مي‌شناسد.





2.Boolean
يا منطقي:اين داده‌ها تنها دو مقدار مي‌توانند داشته باشند: درست (true) و نادرست(false).





استفاده از اين داده‌ها، زماني كه قصد بررسي يك
شرط خاص را داريد مي‌تواند مفيد باشد.





3.رشته‌ها مانندThis is string اين داده‌هااز يك يا چند كاراكتر متني تشكيل يافته‌اند.





 به بيان
دقيقتراين داده‌ها را بايد يك شيء  String دانست.





4.مقدار پوچ يا null، كه با عبارتnull
مشخص مي‌شود.يك متغير تعريف نشده، مقدارnull
راخواهد داشت. براي مثال دستورducument.write(fig)،بافرض
اينكه قبلاً متغير figتعريف نشده باشد،مقدارnull را نمايش  مي‌دهد.





گرچه نوع داده‌اي كه در يك متغير ذخيره مي‌شود
براي مفسر جـاوااسكريپت اهميت دارد، اما بايد دانست كه





در اين زبان، متغيرهـا به يك نوع خاص از داده‌ها
محدود نمي‌شوند. به عبارت ديگر در طول يك اسكـريپت مي‌توان از يك متغير براي ذخيره‌سازي
چند نوع داده مختلف استفاده نمود. براي مثال عبارت زيـر را در نظـر بگيريد:





total=31;





عبـارت فوق متغيري بنام total تعريف كرده و مقدار 31 را در آن قرار مي‌دهد. بنابراين يك نـوع
داده عددي





 براي يك
متغير در نظر گرفته شده است. اكنون فرض كنيد در ادامه اين اسكريپت، عبارت زير را
نوشته‌ايم.





Total=”albatross”;





به اين ترتيب مقدارجديدي براي اين
متغيرتعيين مي‌شود.اين مقدارجديد،ازنوع مقادير رشته‌اي به شمار مي‌رود جاوااسكريپت
با مواجهه با اين عبارت، پيغام خطايي توليد نمي‌كند. در واقع، اين كار در
جاوااسكريپت كاملاً مجاز بوده و قابل انجام مي‌باشد.





رشته‌ها و آرايه‌ها :





گرچه اعـداد نقش بسيار مهمي را در اسكـريپت نويسي
ايفا مي‌كنند، اما بسياري از برنامه‌هـاي اسكـريپتي به رشته‌هاي متني و آرايه‌ها
(گروههايي از اعداد، رشته‌ها، و يا اشياء) نيز نياز دارند. در اين قسمت، نحوه
استفاده





 از رشته‌ها
و آرايه‌ها را در جاوااسكريپت فرا خواهيد گرفت.





1ـ6)خلق يك شيء String :





جـاوااسكـريپت، رشته‌ها را به صورت اشياء String ذخيره مي‌كند. البتـه شمـا ممكن است در حالت عادي نيازي به دانستن
اين موضوع نداشته باشيد، ولي به هر حال علم به اين مسئله مـي‌تواند تعـدادي از
تكنيكهاي كار با رشته‌ها را (كه معمولاً بوسيله متدهاي شيء String به انجام مي‌رسند) توضيح دهد.





بطور كلي، دو روش براي ايجاد يك شيء String جديد وجود دارد. اوليـن روش، همان روشـي است كه تاكنون مورد
استفاده قرار داده‌ايم و شـامل استفاده از يك علامت تساوي براي قرار دادن يك رشته،
در يك





متغير مي‌باشد. در روش دوم، همانند روش خلق ساير
اشياء از دستور new استفاده مي‌گردد.





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





test=”This is a test”;





test=new String (“This is a test”);





در عبارت دوم، به كمك دستور new به مرورگر فهمانده شده كه بايديك شيء جديد ازنوعString وحاوي





 متن This is a test ساخته و آنرا در متغيري بنام test قرار دهد.





بررسي و مقايسه متغيرها :





در اين قسمت، با نحوه مقايسه متغيرها با يكديگر،
و بررسي مقدار آنها به كمك دستورات بـررسي شرط در جـاوااسكـريپت آشنا خواهيد شد.





1ـ7)دستور if:





يكي از مهمترين قابليتهاي يك زبان كامپيوتري،
توانايي آن در بررسي و مقايسه مقادير مي‌باشد. به اين ترتيب





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





دستور if
مهمترين دستور براي بررسي شرطها در جاوااسكريپت محسوب مي‌شود. اين دستور مفهومي
مشابه آنچه از كلمه if در زبان انگليسي به ذهن ميرسد را در بردارد.
براي مثال به عبارت انگليسي زير توجه كنيد:





if the ohone rings,answer it.





عبارت فوق،ازدوقسمت عمده تشكيل شده است:





1.قسمت شرط(if phone rings)





2.قسمت نتيجه (answer it).





 همين دو
قسمت، در زبان جاوااسكريپت نيز براي دستور if در
نظر گرفته مي‌شوند. به مثال زير توجه فرماييد:





if (a==1)window.alert(“Found a 1!”);





عبـارت فوق نيز از يك شرط (اگر a برابر يك باشد) و يك نتيجه (نمـايش داده شدن يك پيغام) تشكيل شده
است. به بيان ديگر، عبارت فوق مقدار متغير a را
بررسي كرده و در صورتي كه اين مقدار برابر 1 باشد، پيغام Found a 1! را نمايش مي‌دهد. در غير اينصورت هيچ عمل خاصي انجام نخواهد داد.





اگر قسمت “نتيجه”
دستور if تنها از يك عبارت جـاوااسكـريپت تشكيل شده
باشد، مي‌توان آنرا همانند مثال فوق نوشت.درصورتيكه بخواهيد درقسمت نتيجه چندعبارت جـاوااسكـريپت قرار دهيد،بايدآنهارابا
علامتهاي كروشه ({,}) احاطه كنيد.





 2ـ7)دستور else :





دستور else
را مي‌توان قابليـت ديگري براي دستور if
دانست. مفهوم اين دستور تقريباً شبيه معني كلمه else





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





تكرار دستورات با استفاده از حلقه‌ها :





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





1ـ8)حلقه‌هاي for :





معمولاً دستور for اولين ابزاري است كه براي ايجاد حلقه‌ها در نظر گرفته مي‌شود. يك
حلقه for، اساسـاً از يك متغير (كه شمارشگر يا انديس
خوانده مي‌شود) براي مشخص كردن تعداد دفعـات اجـراي حلقه استفاده مي‌كند و هنگامي
كه اين متغير به عدد مشخصث برسد، حلقه خاتمه مي‌يابد. در زير مثالي از نحـوة
استفاده از دستور for را مشاهده مي‌كنيد:





for(var=1;var<10;var++) {





در حلقه for، سه
پارامتر كه با استفاده از نقطه‌بند (؛) از يكديگر جدا مي‌شوند، وجود دارند:





1.اولين پارامتر(در مثال بالا، var=1)متغيري را مشخص كرده و مقدار اوليه‌اي به آن نسبت مي‌دهد اين
پارامتر وضعيت اوليه حلقه را تعيين كرده و عبارت آغازين Initial Experssion) ناميده مي‌شود.





2.دومين پارامتر(در مثال فوق var<10) شرطي رادر بردارد كه تنها در صورتي اجـراي حلقه ادامه مي‌يابد كه
اين شرط برقرار باشد.





3.سومين پارامتر يا عبارت افزاينده (Increment Expression) (در مثال فوق var++)، عبارتـي است كه باهر بار تكرار حلقه اجرا مي‌گردد. معمولاً از
اين پارامتر براي افزودن به مقدار شمارشگر استفاده مي‌شود.





پس ازسه پارامتركه درداخل يك پرانتزقرارگرفته‌اند،يك
كروشة چپ ({) براي مشخص كردن شروع دستورات حلقه قرار مي‌گيرد.
به همين ترتيب،در انتهاي دستورات داخل حلقه، يك كروشه راست (}) قرار داده مي‌شود. دستورات موجود بين اين كروشه‌ها، با هر بار
تكرار حلقه، يكبار اجرا مي‌شوند. همانند دستور if، اگر تنها يك دستور در داخل اين حلقه وجود داشته باشد، استفاده از
كروشه‌ها الزامي نخواهد بود.





2ـ8)حلقه هاي while:





دستورديگري كه براي ايجاد حلقه ها در
جـاوااسكـريپت به كار برده مي شود. دستور while
است. برخلاف حلقه هاي for ، در حلقه هاي while لزوماً از يك پارامترشمارشگر استفاده نمي شود. در عوض اين حلقه ها





تا زماني كه شرط خاصي(كه در پرانتزهاي مقابل
عبارت while قرار مي گيرد)بر قرار باشد. اجرا خواهند شد.
اگر اين شرط. در اولين اجراي حلقه بر قرار نباشد. دستورات آن حلقه هرگز اجرا
نخواهند شد.





براي خلق چنين حلقه هائي،پس از كلمه while، پزانتزهائي حاوي شرط مورد بررسي قرار داده مي شود.و در





پي آن،دستورات داخل حلقه، كه با علامتهاي
كروشه({}) احاطه شده‌اند.قرار مي گيرند.





3ـ8)حلقه‌هاي do…while:





در جـاوااسكـريپت 1.2 ، نوع سومي از حلقه ها، بنام حلقه هاي do…while نيز معرفي شدند. اين حلقه ها، مشابه حلقه هاي معموليwhile هستند.بايك تفاوت كه شرط اين حلقه هابه جاي اينكه درابتداي حلقه
بررسي شود در انتهاي آن مورد ارزيابي قرار مي گيرد.





اشياء درون ساخت مرورگر:





در اين قسمت، با در مبحث مهم و پيشرفته در
جاوااسكريپت، يعني اشياء وكنترلگر هاي حوادث آشنا خواهيد شد.





1ـ9)اشياء چيستند؟





اشياء(Objects)
به مااجازه ميدهند باانواع مختلفي از داده ها(خاصيتها) (Properties) و توابعي كه ميتوانند بر روي اين داده ها كار كنند(متدها) (Metods) ، بسادگي و درقالب يك عنصر واحد سروكارداشته
باشيم.در اين ساعت. با اشياء Mach
و Date آشنا خواهيد شد، اما قبل از آن اجازه
بدهيدنگاه مختصري به نقش اشياء در جاوااسكريپت و روش كار با آنها بيندازيم.





1ـ1ـ9)خلق اشياء :





براي هر شيء، مي‌توان تابع خاصي بنام تابع “سازنده” (Constructor) در نظر گرفت كه مي‌تواند آن شيء





را خلق (ايجاد) نمايد. مثلاً، جاوااسكريپت شامل
يك تابع درون ساخت (Built-in)
، ‌به نام String مي‌باشد





كه به منظورايجاداشياء String بكار برده مي‌شود. بنابراين،يك متغير رشته‌اي رامي‌توان به ترتيب
زير نيز خلق كرد:





myname=new String (“Figby”);





دستور new، به
مفسر جاوااسكريپت مي‌فهماند كه بايد يك شيء جديد،ويابه زبان عملي‌تر،نمونه(Instance) جديدي از شيء String خلق كند. اين نمونه جديد، حاوي مقادير Figby بوده و در متغير myname ذخيره خواهد شد.





اين روش ساخت اشياءرامي‌توانيدبراي خلق اشياءArray,Date,String وهمچنين اشيايي كه خودتان تعريف مي‌كنيد،
بكار ببريد.





2ـ9)خاصيتهاي اشياء و مقادير:





هر شيء مي‌توانديك يا چندخاصيت داشته باشد. هر خاصيت،متغيريست كه درقالب يك شيء
ذخيره مي‌شود. بنابراين، هر خاصيت مي‌تواند يك “مقدار”
داشته باشد.خاصيتها،همانند متغيرهاي عددي جـاوااسكـريپت، هر نوع داده‌اي را مي‌توانند
ذخيره كنند.





در طول قسمتهاي گذشته اين تحقيق،معدودي
ازخاصيتهاي اشياء، از جمله خاصيت length
رشته‌ها و آرايه‌ها





را در اسكـريپتهاي خود بكار برده‌ايد. بطور كلي،
براي دسترسي به يك خاصيت، ابتدا نام شيء مربوطه نوشته





و سپس، با قرار دادن يك نقطه بعد از آن، نام
خـاصيت مورد نظر را مي‌نويسيم. مثلاً عبارت زير به طول آرايه names (خاصيت length آن) اشاره دارد:





names.length





خاصيتهاي اشياء، مي‌توانند خود حاوي يك شيء
باشند. براي مثال هر يك از عناصر يك آرايه را مي‌توان يك نوع خاصيت انست كه با
انديس مناسب در آن آرايه مشخص مي‌شوند. براي مثال اگر آرايه names، حـاوي تعدادي متغير رشته‌اي باشد،آرايـه‌اي ازاشياء String خواهد بود. طول اولين عنصر از چنين آرايه‌اي به ترتيب





زير مشخص مي‌شود:





names[0].length





3ـ9)گرد
كردن اعداد:





شيء Match،
داراي سه متد كاملاً مفيد، براي گرد كردن يك عدد اعشاري، به عدد صحيح قبل، و يا
بعد ازآن مي‌باشد:





1.Math.ceil():
يك عدد را به عدد صحيح بعد از آن گرد مي‌كند.





2.Match.floor():
يك عدد را به عدد صحيح قبل از آن گرد مي‌كند.





3.Match.round:
يك عدد را به نزديكترين عدد صحيح گرد مي‌كند.





4ـ9)خلق اعداد تصادفي :





يكي ديگر از متدهاي مهم و مفيد شيء Match، متد Match.rundom مي‌باشد كه يك عدد تصـادفي بين (0و1)خلق مي‌كنند.
اين متد به هيچ پارامتري نياز ندارد.





5ـ9)كار با تاريخها :





شيء Date،
يكي ديگر از اشياء درون سـاخت مرورگـر است كه به كمك آن مي‌توان به راحتي با
تاريخهـا





و مقاديرزماني سروكار داشت. به منظور كار با تاريخها، كافيست يك شيءDate خلق كنيد تابتوانيداز متدهاي مربوط به آن استفاده نماييد.





مدل شيئي سند (DOM) :





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





در اين قسمت به بررسي مراتب اشياء در مدل شيء سند
خواهيم پرداخت.





1ـ10)درك مدل شيئي سند :





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





جاوااسكريپت،بمنظوردسترسي به مرورگر و اسناد وب،
از سلسله مراتبي ازاشياءپدروفرزند(Parent&child)
استفاده مي‌كند كه «مدل شيئي سند» (DOM "Document Object Model") يا «اشياء وابسته به مرورگر» ناميده مي‌شوند. اين اشياء ساختاري
درختي شكل را تشكيل داده و هر يك از آنها نمـاينده قسمتي از صفـحه وب مي‌باشد.
همانند ساير اشياء در جاوااسكريپت، اشياء DOM مي‌تواند
نماينده يك پنجره، يك سند، يا يك تصوير باشد. همانند ساير اشياء در جاوااسكريپت،
اشياء مشخصات صفحه وب و سندخاصيت(Property)يا
متد(Method) باشند.خاصيتهاي اين اشياء، مشخصات صفحه وب
وسند مربوطه را در بردارند و متدهاي آنها،





به منظور كار با قسمتهاي مختلف يك صفحه وب در
دسترس قرار داده شده‌اند.





همانطـوركه اشاره شد، اشياء مدل شيئي سند، در
قالب سلسله‌مراتبي از اشياء در نظر گرفته مي‌شوند كه شيء





رده بالاتر، پدر(Parent) اشياءرده پايينترناميده مي‌شود.اشياء رده پايينتررافرزندان شيءرده
بالاتر مي‌نامند.





هويت هر شيء، بر اساس موقعيت آن در اين سلسله
مراتب شناخته مي‌شود. بعبارت ديگر، به منظور ارجـاع





به يك شيء بايد نام آنرا پس از نام اشياء پدر آن
قرار داده و آنها را با علامتهاي نقطه (.) از يكديگرجدا كرد. براي مثال
جاوااسكريپت هرتصويررا در قالب يك شيءوبعنوان يكي ازفرزندان شيءducumentذخيره ميكند. بنابراين جهت ارجاع دادن به تصويري
بنام image 9 بايد نوشت:





window.ducument.image 9





شيء window،
بالاترين رده از اشياء DOM را تشكيل مي‌دهد.





شيء window :





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





1.از خاصيت window.status براي تغيير محتويات نوار وضعيت (Status Bar) استفاده كرده‌ايد.





2.متدهاي window.prompt , window.confirm , window.alert را به منظور ايجـاد پنجره‌هاي گفتگو بكار برده‌ايد.





كاربر ممكن است در يك زمان چندين پنجره مرورگر را
باز كرده باشد. بنابراين چندين شيءwindow
ممكن است بصورت همزمان وجود داشته باشند. هر شيء window، معرف يك پنجره مرورگر است. زيـرصفحه‌ها (Frames) نيز در قالب اشياء window
در نظر گرفته مي‌شوند.





2ـ10)دسترسي به تاريخچه مرورگر :





شيءHistory:





شيء history،
يكي ديگر از فرزندان (خاصيتهاي) شيءwindow
مي‌باشد.اين شيءاطلاعاتي درمورد URL صفحه‌هايي
كه قبل، يا بعدازصفحه موجود مرور شده‌اند،ونيزداراي متدهايي براي هدايت كاربربه
اين صفحات مي‌باشد.





شيء history
چهار خصوصيت دارد:





1.history.length:
طول ليست تاريخچه و يا به عبارت ديگر تعداد صفحات مختلفي راكه كاربرآنها را مرور
كرده است در بردارد.





2.history.current:
مقدارعنصرفعلي ليست تاريخچه(URLصفحه‌اي كه
كاربردرحال حاضردرحال مشاهده





آن است) را در بردارد.





3.history.next:
مقدار عنصر بعدي در ليست تاريخچه (URL صفحه‌اي
كه اگر كاربر، دكمه Forward را فشار دهد به آنجا هدايت خواهد شد)رادربر
دارد. از آنجاييكه اين دكمه، تنها زماني كار خواهد كرد كه كاربر قبلاً دكمه Back را فشار داده باشد. ممكن است خاصيت history.next حاوي هيچ مقداري نباشد.





4.history.previous:
مقدار عنصر قبلي در ليست تاريخچه (URL صفحه‌اي
كه اگر كاربر دكمـه Back را فشار دهد به آنجا هدايت خواهد شد) را در
بردارد.





شيء location
:





يكي ديگر از فرزندان شيء window، شيء location است كه اطلاعاتي را در موردURL موجود در پنجره مرورگر بار شده در بردارد. به كمك عبارت زير مي‌توان
URL جديدي را در پنجره مرورگر بار كرد:





window.location.href=”http:www.newlocation.com”;





خاصيتhref  شيءlocation،‌
به URL كامل صفحه موجود اشاره دارد. همچنين،
خاصيتهاي ديگر اين شيء مي توانند قسمتهـاي مختلفي ازURL را در دسترس قرار دهند. براي مثالlocation.protocol شامل قسمت پروتكلURL
(معمولاً http) مي‌باشد.





خلق اشياء اختصاصي:





اشياء درون ساخت و اشياء مرورگر، پراستفاده‌ترين
اشياء در جـاوااسكـريپت را تشكيل مي‌دهند؛ به هر حال





شما مي‌توانيد خودتا اشيائي اختصاصي (custom) تعريف كرده و آنها را در اسكـريپتهاي خود
بكار بگيريد.





در اين قسمت، با روش ساخت اشياء اختصاصي آشنا شده
و خواهيد ديد كه چگونه جـاوااسكـريپت با اين اشياء برخورد مي‌نمايد.





1ـ11)استفاده از اشياء براي ساده‌كردن اسكريپتها :





گرچه متغيرها و آرايه‌ها ابزار مناسبي براي ذخيره‌سازي
داده‌ها در جاوااسكريپت هستند، ولي گاه ممكن است





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





اگر بخواهيد براي ذخيره كردن اين اطلاعـات از
متغيرهاي معمولي استفاده كنيد، بايد براي هر شخص حداقل





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





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





به كمك اشياء(Object) مي‌توانيدروند ذخيره‌سازي ودستيابي به اطلاعات افراد را چنان ساده
و منطقي نماييد





كه گويي با كارتهاي شناسايي آنهاسروكار داريد.هر
فردرادرقالب يك شيءCard درنظربگيريد كه خاصيتهاي (Properties) آن شامل نام،آدرس وشماره‌تلفن‌هاي وي مي‌باشند.باتعريف
يك متد(Metod) براي اين شيء، مي‌توانيد اطلاعات هر فرد را
با ساختار مشخصي در صفحه نمايش دهيد.





2ـ11)اختصاصي كردن اشياء درون ساخت :





جاوااسكريپت شامل قابليتي است كه به كمك آن مي‌توان
تعريف اشيساء درون ساخت (Built-in Objects)





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





به يك شيء، بايد از كلمه كليدي prototype استفاده نماييد (عبارت prototype،
همچنين نام ديگري براي تعريف يك شيء و يا به بيان ديگر، تابع سازنده يك شيء محسوب
مي‌شود). در واقع، به كمك كلمه كليدي prototype
مي‌توان تعريف يك شيء را رد خارج از تابع سازنده آن تغيير داد.





پنجره‌ها و زيرصفحه‌ها :





1ـ12)كنترل پنجره‌ها با استفاده از اشياء:





آموختيد كه شيء window، در بالاترين رده از سلسله مراتب اشياء وابستـه به مرورگـر قرار
داشته و اشياء location,
history, document
فرزندان آن محسوب مي‌شوند.





در اين قسمت قصـد داريم نگاه دقيقتري به خود شيء window بيندازيم. واضح است كه سروكـار داشتن با اين شيء به معني كار با
پنجره‌هاي مرورگر مي‌باشد. به كمك نوعي از اين شيء همچنين مي‌توان زيرصفحه‌ها (Frames) را نيز كنترل كرد.





شـيء window
هميشه به پنجره فعلي مرورگر (پنجره‌اي كه اسكـريپت موجود را در بر گرفته است)
اشـاره دارد. كلمـه Self، نيز به معني پنجره كنوني مي‌باشد.
همانـگونه كه در قسمت بعد خواهيد ديد، مي‌تـوانيد در يك زمان بيش از يك پنجره
داشته باشيد كه در اينصورت، با استفاده از نام آنها، مي‌توان به آنها ارجاع داد.





2ـ12)ايجاد وقفه‌هاي زماني :





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





متدset Timeout
كه بدين منظوربكار برده مي‌شود، دو پارامتر را قبول مي‌كند، اولين پارامتر، شامـل
يك يا





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





اول خواهد پرداخت تا وقفه‌هاي زماني، باعث متوقف
شدن كليه اعمال مرورگر نخواهند شد.گرچه دستوراتي





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





3ـ12)استفاده از اشياء جاوااسكريپت براي كار با زيرصفحه‌ها
:





اگر صفحه‌اي را به چند زير صفحه تقسيم كنيد،
جاوااسكريپت هر يك از آنها را به عنوان يك شيء frame





در نظر مي‌گيرد.شيءfrome،معادل شيءwindow محسوب مي‌شود؛با اين تفاوت كه براي كاربا
زيرصفحه‌ها ايجادشده است.شيءframe،
همان نامي است كه توسط ويژگي name،
به زير صفحه اختصـاص داده شده.





هنگاميكه با زيرصفحه‌ها سروكار داريد، هر دو
عبارت windowو self، به زير صفحه موجود اشاره مي‌كنند.





در عوض، براي ارجاع به پنجره اصلي، مي‌توان  از عبارت Parent استفاده نمود.





هر يك از اشياء frame در يك پنجره، يكي از فرزندان شيء window رده بالاتر از خود محسوب مي‌شوند.





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





در اينصورت parent به زيرصفحه‌اي كه يك رده بالاتر از زيرصفحه موجود قرار دارد (زيرصفحه
موجود در





آن تعريف شده است) اشاره مي‌نمايد. شيء top نماينده بالاترين رده زيرصفحه‌ها (يا پنجره اصلي، كه تمامي
زيرصفحه‌ها درآن تعريف شده‌اند) مي‌باشد.بديهي است كه اگر دريك صفحه وب،تنها يك
رده از زيرصفحه‌ها تعريف شده باشند، دو عبارت parent و top
معادل هم خواهند بود.





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





دريافت
اطلاعات به كمك پرسشنامه :





1ـ14)اصول
طراحي پرسشنامه‌ها در HTML :





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





2ـ14)شي‌ء
form در جاوااسكريپت :





جاوااسكريپت، هر يك از پرسشنامه‌هاي صفحه وب را
به عنوان يك شي‌ءform در نظر ميگيرد.اين شي‌ء نامي برابر با آنچه
با كمك ويژگي name براي پرسشنامه در نظر گرفته شده، خواهد
داشت. همچنين، با استفاده از آرايه forms،
مي‌توان به پرسشنامه‌ها دسترسي داشت. به ازاي هر پرسشنامه،‌ يك عنصـر در اين آرايه
تعريف مي‌گردد. توجه داشته‌ باشيد كه عناصر اين آرايه با انديس صفر شروع مي‌شوند.





3ـ14)وروديهاي متن :





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





4ـ14)وروديهاي چند خطي متن :





به منظور ايجاد وروديهاي متني كه مي‌توانند چند
خط از اطلاعات را از كـاربر دريافت كنند، بايد از دستـور <textarea>، به عنوان متن پيش گزيده در اين ورودي قرار مي‌گيرد.اين ورودي به
عنوان شي‌ء text1تحت شي‌ء form قابل دسترسي است.





5ـ14)كار با متن در پرسشنامه‌ها :





اشياء text
و textrea، متدهائي براي كار با متن دارند:





focus():تمركزصفحه را به ورودي منتقل مي‌كند.با اين كار،مكان‌نما (cursor) در ورودي قرارخواهد گرفت.





Blur():برعكس متد قبلي، تمركز را از ورودي گرفته و به عنصر بعدي در صفحه
منتقل مي‌كند.





Select():متن داخل ورودي را انتخاب مي‌كند(همانگونه كه كاربرمي‌تواندبه كمك
موس اينكار راانجام دهد).





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





6ـ14)دكمه‌ها :





دكمه‌ها (Buttons) عناصري از پرسشنامه‌ها هستند كه اگر كاربر روي آنها كليـك كند،
حالت فشرده شدن را تقليد مي‌نمايند. دكمه‌ها باكمك دستور <input> ساخته شده و مي‌توانند براساس ويژگي type، يكـي از سه نوع زير داشته باشند:





type=”SUBMIT”: يك دكمه SUBMIT خلق مي‌كند. كـاربر مي‌تواند با فشـردن اين
دكمـه، اطلاعـات پرسشنامه را به يك اسكريپت CGI در سرويسگر عرضه نمايد.





Type=”RESET” يك دكمه RESET خلق مي‌كند. كاربر مي‌تواند با فشـردن اين
دكمـه، تمامي عنـاصر پرسشنامه را به حالت اوليه و پيش گزيده خود در ‌آورد.





Type=”BUTTON”: دكمه‌اي خلق مي‌كند كه در حالت عادي هيچ عمل خاصي انجام نمي‌دهد.
به كمك كنترلگرهاي حادثه و دستورات جاوااسكريپت، مي‌توان براي اين دكمه عمل خاصي
را تعريف كرد.





7ـ14)مربعهاي گزينش :





يك مربع گزينش (Check Box)، عنصـري از پرسشنامه‌هاست كه به شكل يك مربع كوچك مي‌باشد. كليك
كردن بر روي آن باعث علامت خوردن، يا حذف علامت آن مي‌شود. اين عنـاصر، براي
مواردي كه پاسخ آنها بصورت بلي ياخيرميباشندمفيدهستندمربعهاي گزينش بكمك دسترس<input>ويژگيtype=”CHECKBOX”  خلق مي‌گردند.





8ـ14)دكمه‌هاي راديوئي :





يكي ديگر از عناصري كه بوسيله آن مي‌توان تصميمات
كاربر را دريافت نمود، دكمـه‌هاي راديوئي (Radio Buttons) هستند كه با استفاده از دستور <input> و ويژگي type=”radio” ساخته مي‌شوند.





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





بر انتخاب يكي از چند گزينه استفاده مي‌گردد.





يكي ازمفيدترين ودرعين‌حال پيچيده‌ترين جنبه‌هاي
يك زبان برنامه‌نويسي،توانائي آن درايجادتصاوير گرافيكي





و بازيهاي كامپيوتري مي‌باشد.





تصاوير گرافيكي و انيميشن :





1ـ15)استفاده از جاوااسكريپت براي كار با نقشه‌هاي
تصويري :





نقشه‌هاي تصويري(Image Map)، راه حل مناسبي براي هدايت سريع و ساده كاربران به صفحات وب مورد
نظر محسوب مي‌شوند.





اين نقشه‌ها تصاويري هستندكه به چند منطقه ويژه
كه همانند يك پيوند، نمي‌توانند كاربررابه صفحات جديدي هدايت كنند تقسيم شده‌اند.
به كمك جاوااسكريپت مي‌توانند حوادث(Events)
مربوط به موس را برروي اين نقشه‌ها بررسي كرده و در واكنش نسبت به آنها، دستورات
مناسب را اجرا نمائيد.





بطوركلي، دو نوع از نقشه‌هاي تصويري وجود دارند:
نقشه‌هاي وابسته به سرويسگـر(Server-Side Image Maps)
و نقشه‌هاي وابسته به مرورگر(Client-Side Image Maps).
نقشه‌هاي وابسته به سرويسگر، به يك فايل جداگانه براي تعريف نقشه نياز دارند و
توسط سرويسگـر كنترل مي‌شوند. د رمقابل، نقشه‌هاي وابسته به مروگـر، در داخل سند HTML تعريف شده و مرورگـر آنها را كنترل مي‌كند. بنابـراين
جـاوااسكـريپت نيز مي‌تواند با آنها ارتباط برقرار نمايد.





2ـ15)تصاوير ديناميك در جـاوااسكـريپت :





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





البته، اين تكنيك در بعضي موارد بهترين راه حل به
شمار نمي‌رود زيرا داراي محدوديتهاي زير مي‌باشد:





با اين تكنيك، تنها مي‌توان تصاوير موجود در صفحه
را تغيير داد. حذف يك تصوير، يا افزودن تصاوير جديد





به صفحه، با اين روش ممكن نيست.





گرچه مي‌توان يك تصوير را با يك تصوير بزرگتر و
يا كوچكتر جايگزين كرد، ولي در مرورگرهاي قديمي‌تر،





 با اين
كار متنهاي صفحه به منظور هماهنگي با ابعاد تصـوير جديد تغيير مكان نمي‌دهند.
بنابراين ممكن است ظاهر صفحه دچار اشكال شود.





تمامي تصاويري كه بكار برده مي‌شوند، بايد از
سرويسگر برداشت شوند. بنابراين، ايجاد انيميشن‌هاي پيچيده،





و يا تغيير تصاوير بزرگ و حجيم با اين روش چندان
عملي نيست.





اسكـريپتهاي فرامرورگري :





وقتي يك اسكـريپت با هر دوي اين مرورگرها سازگار
باشد، مي‌توان گفت اكثريت قريب به اتفـاق كـاربران توانائي استفاده از آنرا خواهند
داشت.





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





1ـ16)دريافت اطلاعات مرورگر :





بامدل شئي سند(DOM) (Document obgect MODEL) واشيائي نماينـده قسمتـهاي مختلف سنـد وب
پنجره مرورگر هستند، از جمله اشياء document , window
آشنا شديد. جاوااسكريپت همچنين شامل شيئي بنام navigator مي باشد كه با استفاده از آن ميتوان مرورگر كاربران را بررسي كرده
و اطلاعات مربوط به آن





 را
خواند.





شيء navigator
، جزئي از سلسله مراتب اشياءرا در DOM
تشكيل نميدهد. بنابراين ، مي توانيد مستقيماًبه





آن ارجاع دهيد . اين شيء شامل خاصيتهايي است كه
هريك از آنها اطلاعاتي رادر مورد مرورگر ارائه ميكند . گروهي از اين خاصيتها
عبارتند از :





  • navigator. Appcodename نام كد داخلي مرورگر ، كه معمولا Mozilla ميباشد.
  •  Navigator. Appname: نام مرورگر ، كه معمولا Netscape
    و يا microsoft
    internet explorer
    است.
  • Navigator. Appversion : نسخه اي از مرورگر است كه مورد استفاده
    قرار گرفته.




2ـ16)حل مشكل ناسازگاري مرورگرها :





اگز قصد داريد در اسكـريپتهاي خود قابليتهايي را
به كار ببريد كه از سوي دو مـرورگرIE, Netscape
بطور يكساني پشتيباني نمي شود ، ميتوانيد از چند روش براي هدايت صحيح كاربران
استفاده نمائيد.





3ـ16)خلق اسكريپتهايي كه به يك مرورگر اختصاص دارند :





ساده ترين (و شايد بدترين) راه حل اين مشكل آن
است كه صفحات خود را تنها مخصوص به يك مـرورگر طزاحي كرده و كاربراني را كه از
مرورگر ديگري استفاده مينمايند ناديده بگيريد . براي اين كار ، كـافي است به كمك
يك اسكريپت ساده، نوع مرورگر ماربر را تشخيص داده و در صورت عدم استفـاده وي از
مـرورگر مـوردنظر، براي او پيغام هشـداري نمايش دهيدويا او را به صفحه ديگري براي
برداشت مرورگر مـورد نظـر هدايت نمائيد.





4ـ16)هدايت كاربران به صفحات متفاوت :





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





و سپس، با استفاده از جـاوااسكـريپت نوع مرورگر
هر كاربر را تشخيص داده و اورا به صفحه مناسب هدايت نمائيد.





5ـ16)خلق يك صفحه چند منظوره :





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





اشكال اين روش آن است كه صفحاتي فوق العاده
طولاني تبديل شوند .





كار با شيوه نامه ها :





در اين قسمت به معرفي شيوه نامه ها  مي پردازيم . به كمك شيوه نامه ها مي توانيم
كنترل بهتر و مناسبتري بر روي نحوه نمـايش عنـاصر در صفحه وب داشته باشيم. همچنين
مي توان با تركيب شيوه نامه ها با دستورات جـاوااسكـريت ، ظـاهر صفحات را بطور
ديناميك تغير داد.





1ـ17)معرفي
HTML  ديناميك :





HTML ديناميك ياDHTML
، استـانداردي است كه تا حد زيادي به وسيله هر دو مرورگر نت اسكيپ و اينترنت
اكسپلورر(IE)
 با قابليتهايي بعضا متفاوت پشتيباني ميشود .
تعدادي از اين قابليتها عبارتند از :





  • شيوه نامه Style sheets  : به كمك شيوه نامه ها
    ميتوان ظاهر صفحات و ب و اجزاء آنها را كنترل كرد.
  • لايه ها: روشي براي تنظيم مكان قسمتهاي خاصي از
    صفحه
  •  فونتهاي
    ديناميك: به كمك اين قابليت ميتوان يك فونت قابل برداشت تعريف كردتابدون ذخيره شدن
    در            كامپيوتر كاربر ، در يك صفحه
    وب مورد استفاده قرار گيرد.




2ـ17)شيوه ها و ظاهر صفحات :





اگر تاكنون سعي كرده باشيد صفحه و ب بسيار زيبائي
خلق كنيد احتمالا به مشكلاتي برخورد كرده ايد.اولاً به كمكHTML نميتوان كنترل دقيقي بر روي صفحات وب اعمـال كرد.HTML يك زبـان تفسيرشونده است





مثلاً اگر در يك سند HTML، دو حرف فاصله (Space)
وجود داشته باشد ، مرورگـر تنها يك حرف فاصله





را در صفحه قرار خواهد داد .





دوميـن مشكل ، اين است كه حتـي اگـر بتوانيد به
كمك HTML صفحه اي با ظاهر كاملا دلخواه بسازيد ،
خواهيـد ديد كه اين صفحه در مرورگرهاي مختلف بصورت كاملا يكسان نمايش داده نخواهد
شد.





علت اين مشكلات آن است كه HTML اساساً بدين منظور طراحي نشده است. HTML به منظـور كنتـرل ساختارصفحه (به عبارت ديگر، نحوه تقسيم آن به
پاراگرافها، سر فصلها، ليستها و اجزاي ديگر) تعـريف شده است. از آنجائيكهHTML، تنهاساختاريك صفحه را تعريف مي‌كند نه ظاهر آن را، يك سندHTML مي‌تواند دريك مرورگرمتني مانند lynx نيزنمايش داده شود.دراين حالت،اجزاصفحه به اشكال
مختلفي ظاهر مي‌شوند ،‌





اما مي‌توان مطمئن بود كه ساختار كلي اين صفحه،‌در
تمامي مرورگرها حفظ خواهد شد مثلاً مي‌توان مطمـئن





بود كه متـن سرفصل، در تمام مرورگرها به صورت
سرفصل ظاهر مي‌گردد، و يا يك ليست، در هر مرورگر به شكل يك ليست ديده مي‌شود.





به اين ترتيب ملاحظه مي‌فرمائيد كهHTML توانسته به خوبي از عهده وظيفه‌اي كه برايش تعريف شده يعنـي تعيين
ساختاركلي يك صفحه،‌ برآيد. بنابراين جاي تعجبي وجود ندارد كه به كمك اين زبان،
نتوان ظاهر دقيق يك صفحه را تنظيم كرد.





3ـ17)تعريف
و استفاده از شيوه‌هاي css :





براي استفاده ازشيوه‌ها(STYLES) در يك صفحه،ابتدا بايد آنها را به كمك دستور<STYLE> تعريف نمود مهمترين دستوري كه درHTML براي تعريف شيوه نامه‌ها به كار برده مي‌شود. دستور <STYLE> است كه ميتواند ليستي ازشيوه‌هاراتعريف
نمايد.دستور آغازين<STYLE>
همچنين نوع شيوه‌نامه‌ها رامشخص مي‌كند. دستور پاياني </STYLE>، در انتهاي اين تعاريف قرار مي‌گيرد.





4ـ17)تنظيم مكان متن :





يكي از مفيدتـرين قابليتهاي شيوه نامه ها،
توانايي آنها در تعين مكان متن و فضاهاي خالي اطراف آن ميباشد. بعضي از اين
قابليتها در HTML استاندارد در دسترس نيستند .





5ـ17)تغيير رنگ ، و تصاوير زمينه :





به كمك شيوه نامه ها ، همچنين مي توان كنترل
بيشتري بر روي رنگ متن و زمينه صفحه بدست آورد :





بدين منظور ، CSS شامل ويژگيهاي زير ميباشد :





COLOR : رنگ متن يك عنصر را تعيين ميكند . با اين كار مي توان تأكيد
بيشتري بر روي قسمتي از متـن نشان داد.





Background – color  :
رنگ زمينه يك عنصر را تعين ميكند . به اين ترتيب ميتوان رنگ منحصر به فردي





را براي زمينه يك پاراگراف ، يك خانه از جدول و
يا ساير عناصرصفحه در نظر گرفت.





Background – imahe  تصويري را براي زمينه يك عنصر تعيين ميكند.





6ـ17)كار با فونتها :





شيوه نامه ها، همچنين به مااجازه ميدهند حالت
فونتهايي راكه درصفحه وب استفاده مي شوند ، كنترل نمائيم. ويژگيهاي زير در اين
ارتباط در دسترس قرار دارند:





  1. font –
    style :
    شيوه يك فونت را مانند normal ، italic
    ياoblique  مشخص
    ميكند .
  2. fount –
    weight : به
    كمك اين ويژگي مي توان نرمال يا bold  بودن متـن را تعيين كرد. همچنين
  3. مي توان با تعيين
    يك مقدار عددي براي وزن فونت، ميزان ضخامت حروف را مشخص نمود .
  4. font –
    size :
    اندازه فونت را مشخص مي كند .




font  : اين ويژگي روش سريعي
براي تعيين تمامي ويژگيهاي مربوط به فونت محسوب ميشود.در اين روش ، ميتوان مقدار
ويژگيهاي مزبور را در قالب ليستي مشخص نمود.





7ـ17)حاشيه ها و حدود :





به كمك شيوه نامه ها ميتوان حدود كلي صفحه
راتعيين كرد. ويژگيهاي زير مي توانند بر روي حواشي، حدود وطول وارتفاع عناصر صفحه
تاثير بگذارند :





 margin – right . margin-left . margin-bottom .
margin-top اين ويژگيهـا
حاشيه  اطراف  يك عنصر را تعيين مي كنند . مقدار اين ويژگيها
را مي توان بر حسب يك عدد و يا در صدي عرض كلي صفحه





ذكر نمود.





  1. Margin: به كمك اين ويژگي مي‌توان مقداري را براي
    هر چهار حاشيه در نظر گرفت.
  2. Width: عرض يك عنصر، مانند يك تصوير را مشخص مي‌كند.
  3. Height: ارتفاع يك عنصر را مشخص مي‌كند.




استفاده از لايه‌ها براي خلق صفحات ديناميك :





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





در طول اين قسمت نحوه كار با لايه ها را به كمك
جاوااسكريپت فرا خواهيد گرفت.





1ـ18)لايه‌ها چگونه كار مي‌كنند ؟





لايه‌ها قابليت جديدي براي ايجاد اثرات ديناميك
در صفحـات وب محسـوب مي‌شوند. يك لايه، قسمتي از





يك صفحه وب است كه از ساير قسمتهاي صفـحه كاملاً
مجزا بوده و بصورت يك قطعه مستقـل با آن رفتار مي‌شود.





به عبارت ديگر، محتويات يك لايه را مي‌توان بدون
ارتباط به ساير قسمتهاي صفحه تغيير داد، مكان جديدي





را براي آن در نظر گرفت،‌آن را مخفي و يا آشكار
نمود، ويا به جلو يا عقب لايه‌هاي ديگر منتقل كرد.





همچنين مي‌توان يك لايه را بصورت شفاف تعريف كرد
تا لايه‌هاي زيرين آن از ديد كـاربر مخفي نشـوند. لايه‌ها به نام عنـاصر قابل
تغييرمكانPositionable
Elements  نيز خـوانده شده وجزئي ازاستـاندارد شيوه نامه
هاي آبشاري (CSS) را تشكيل ميدهند . گرچه هر دو مرورگر
اينترنت اكسپلـوررو نت اسكـيپ از ايـن قابليت پشتيباني مي كنند،ولي تفاوتهايي بين
نحوه انجـام آن، بين نسخه هاي قديمي تر اين دو مرورگر وجود دارد .





2ـ18)دو استاندارد براي خلق لايه ها :





نت اسكيپ براي اولين بارقابليت ايجادلايه هارابه
مرورگرخودافزودوبراي اينكار دستور<layer>راارائه
نمود تمامي دستوراتيكه براي تعريف يك لايه نوشته ميشوندبايدبين دستورات آغازي پاياني<layer>…</layer> قرار گيرند . اين دستور تنها بوسيله مرورگري
نت اسكيپ پشتيباني ميشود.





گرچه هنوزميتوان بااين روش لايه هايي سازگاربانت
اسكيپ ايجادكرداما در حال حاضر نمي توان آنرا بهترين روش خلق لايه ها دانست زيرا
استاندارد جديدي در CSS تعريف شده كه تمامي قابليتهاي دستور <layer>





 را دارا
بوده وبعلاوه توسط هردومرورگراينترنت اكسپلوررنسخه 4.0 و بالاتر، ونت اسكيپ نسخه 4.0 و بالاتر پشتيباني مي‌گردد.





جز در موارد بسيار نـادر، استفاده از استاندارد CSS بهترين روش براي خلق لايه‌ها مي‌باشد. با پيروي از اين استاندارد،
گروه كثيري از مخاطبان را كه از مرورگر اينترنت اكسپلورر استفاده مي‌كنند از دست
نخواهيدداد.





3ـ18)خلق
لايه‌هاي CSS :





براي خلق لايه‌ها دريك صفحـه وب، مي‌توان تعدادي
از ويژگيـهاي استانـدارد CSS را مورداستفاده قرارداد. بطور كلي روشهاي
متفاوتي براي خلـق اين لايه‌ها وجـود دارد كه معروفترين آنـها استفـاده ازدستور<div> مي‌باشد.





دستور <div> جزئي از استاندارد HTML 3.0
است كه بوسيله آن مي‌توان قسمت مجزائي از صفحه وب را تعريف نمود.اين دستوربه خودي
خودهيچ حالت خاصي رابراي متني كه دربرمي‌گيردمشخص نمي‌كند بنابراين روش ايده‌آلي
براي تعريف لايه‌ها محسوب مي‌شود.





براي خلق يك لايه به كمك دستور <div>، كافيست تمامي دستورات لازم براي ساختن
محتويات لايه را بين دستورات آغازين و پاياني<div>…</div>  قرار
داده و خواص آن لايهرا با استفاده از ويژگي style تعريف كنيد.





4ـ18)تعريف خواص لايه ها :





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





  1. position: ويژگي اصلي براي تعيين مكان لايه بوده و مي‌تواند
    ساير خواص لايه را تحت تأثير قرار دهد.
  2. Width و height:
    اين ويژگيها مشابه ويژگيهاي Width
    و height در HTML
    استاندارد عمل كرده و طول و ارتفاع لايه را تعيين مي‌كنند.
  3. CLIP:محدوده قابل رؤيت يك لايه رامشخص مي‌كند.تنهـا،
    قسمتي از آن لايه كه در داخل اين محدوده باشد، نمايش داده خواهد شد.
  4. Backgroundcolor: رنگ زمينه كل لايه را(صرف نظر از اينكه د
    رآن قسمت متن ميباشديانه) مشخص مي كند
  5. Background
    –image :‌تصويري
    را براي زمينه متنهاي داخل لايه تعيين ميكند .




استفاده از جاوااسكريپت براي توسعه سايت وب :‌





براي شروع ،‌در اين قسمت يك صفحة‌ HTML عادي خلق كرده و تعدادي از قابليتهاي جاوااسكريت را به منظور
توسعه آن و ساده تر شدن هدايت كاربران در آن مورد استفاده مي دهيم .





1ـ19)خلق سند HTML
:





براي اين مثال ، از صفحه وب ساده يك شركت نرم
افزاري كوچك به نام FSC 
استفاده ميكنيم .





صفحه وب ، شـامل يك لـوگـو (logo) در بالاي صفحه ، سـه پاراگـراف از اطلاعـات متني ، و يك ليست
گلوله دار ساده شامل پيوندهاي به صفحاتي ديگر مي باشد .





ما كار خود را از اين صفحه شروع كرده و سعي مي
كنيم با استفاده از جـاوااسكـريپت به توسعه آن پرداخته





وآن را جذاب تر نمائيم .





پيونـدهاي مختلفي كه در صفحـه قرار دارند
ميتوانند كـاربر را به صفحـات ديگري هدايت كنند . مقصد اين پيونـدها ، شامل صفحاتي
براي ارائـه اطلاعـات در مورد شركت و محصولات آن ، صفحه اي براي دريافت پشتيباني
فني ، و صفحه اي براي دريافت فرم سفارشات مي باشند .





2ـ19)استفاده ازليستهاي باز شونده براي تسهيل هدايت
كاربران :





فرض كنيد كه شـركت FSC تصميم گرفته اطلاعـات كاملتري از محصـولاتش را در سـايت وب خود
ارائه نمايدFSC سه محصول نرم افزار متفاوت دارد.يك نرم
افزار پردازشگرمتن(Word
processor)يك
نرم افزار صفحه گسترده (Spread) ،ويك نـرم افزار پايگاه داده ها (Databasse). بـراي هر يك از اين محصولات ، اطلاعات جزئي
تري وجود دارد كه اگر طراح سـايت اين شركت بخواهد آنها را به روش سنتي ارائه كند .
بايد نام هر نـرم افزار را به صورت پيوندي براي صفحه مخصوص آن نـرم افزار قرار دهد
كه آن صفحه ، به نوبه خود ليستي از پيوندها، به ساير اطلاعات را در بر دارند.





اين كار،هدايت كارگران را اندكي دشوار مي‌كند
زيرا كاربر، مثلاً براي مشاهده قيمت نرم‌افزار صفحه گسترده، مجبـور است پس از صفحه
اصلي بر روي پيوند Spreadsheet كليك كند تا به صفحه مربوط به آن هدايت شود.
سپس، در آن صفحه بايد پيوند Pricing Information
را كليك نمايد تا اطلاعات مربوط به قيمت را دريافت كند.





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





اجازه بدهيد براي اينكار از دو ليست بازشونده
استفـاده كنيم. در يك ليست، نوع نرم‌افزار، و در ليـست ديگر اطلاعـات مورد نظر در
ارتباط با آن انتخاب مي‌شوند.





3ـ19)خلق
دستورات HTML و ايجاد
ساختار داده اي:





قبل از نوشتن تابعي كه مي تواند كاربران را در
سايت FSC هدايت نمايد، بايد به گونه‌اي داده‌هاي لازم
براي ارجاع به صفحات مناسب را ذخيره كنيم. براي اينكار، داده‌هاي مربوط به سه نرم‌افزار،
و پنج رده از اطلاعات مختلف را به كمك دستـورات HTML و در قالب يك پرسشنامه ذخيره مي‌كنيم. مفسر جـاوااسكـريپت اين
داده‌ها را بصورت خـاصيتهاي شي‌ء form
در نظر مي‌گيرد. هر يك از اين داده‌ها، مقدار ويـژگي value يك دستور <option>
را تشكيل مي‌دهند.





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





4ـ19)افزودن توضيحاتي در مورد پيوندها:





مطمئناً، بعضي از كاربران استفاده از پيوندهاي
سنتي را براي انتقال به صفحات جديد ترجيح مي‌دهند بنابراين





اين پيونـدها را از صفحه خود حذف نخواهيم كرد در
عوض براي ارائه اطلاعات بيشتـري در مورد هر پيوند، توضيحاتي را در مورد آن، در
هنگام قرار گرفتن نشانه‌گر موس برروي آن، در نوار وضعيت (status bar) به نمايش درمي‌آوريم.شما بااين تكنيك در ساعتهاي گذشته آشنا شده‌ايد
براي اين كار كافي است از دو كنترلگر حادثه onmouseover وonmouseout
  براي تشخيص ورود وخروج نشانه‌گر موس به محـدوده
هرپيـوند استفاده نمائيم. با قرار دادن اين دو كنترلگر حادثه در كنار دستورات
پيوند، مي‌توانيم نتيجه دلخواه را بدست آوريم.





5ـ19)استفاده از پيوندهاي گرافيكي:





به عنوان جايگزيني براي پيوندهاي عادي صفحه و
ليستهاي بازشونده، مي‌توانيم از تصاوير گرافيـكي نيز براي هدايت كاربران در سـايت FSC كمك بگيريد. براي زيباتر شدن كـار، از تصاوير متغير بدين منظور
استفـاده خواهيم كرد.





نتيجه:





نتيجه اي كه مي توان گرفت اين است كه
جاوااسكريپت يكي از بهترين زبانهاي برنامه نويسي در دنياي وب است .چون به نرم
افزار خاصي احتياج ندارد .وهمچنين دستورات آن به حروف كوچك وبزرگ حساس نيستند





ومي توان به كمك آن اجزايي از صفحة وب را
همچون رنگ،پس زمينه ،رنگLink را تغيير
داد.    





 





خلاصه:





آموختيم كه اسكريپت دروب به چه معناست وجاوااسكريپت
چيست وهمچنين روش قراردادن يك اسكريپت در سندHTML را فرا گرفتيد. با ابزار لازم جهت خلق يك اسكريپت، يك ويرايشگر
متن و يك مرورگر آشنا شديد و به مروري كوتاه بر قابليتها و توانائيهاي جاوااسكريپت
پرداختيم وتوانائي جـاوااسكريپت براي كـار با پنجره‌هاوپيغامها وتصاويرگرافيكي
وپرسشنامه‌هاوهمچنين تشخيص نوع مرورگروكنترل برنامه‌هاي اتصالي مورد بررسي قرار
داديم با مسائلي چون تعريف توابع، اصول اشياء وكنترل حوادث ومخفي كردن اسكريپتها
ازديـد مرورگرهاي قديمي آشنا شديم روش نامگذاري متغيرهاونحوه تعريف آنهاو ذخيره
كردن رشته‌ها را فرا گرفتيد وهمچنين بامفاهيم اساسي اشياءومدل شيئي سند آشنا
شديد.چگونگي خلق يك شيءمورد نظردرجاوااسكريپت وروش استفاده از شيءwindow براي كارباپنجره‌هاي مرورگررا يادگرفتيم.نحوه خلق پرسشنامه رادرHTML واستفاده ازجاوااسكريپت براي كار با آنها را فراگرفتيد و نحوه
استفاده ازشيـوه نامه براي كنترل صفحات وب را توضيح داديم.درباره تكنيكهاي مختلفي
ازجاوااسكريپت براي توسعه يك سايت وب واقعي صحبت كرديم.


تگ های مطلب

#جاوا اسکریپت ,

نظرات کاربران

نویسنده نظر : آرميتا مهرشاد - 1398/3/16 (11:43)
فايل رو دانلود کردم بسيار عالي هموني بود که دنبالش بودم
 
پاسخ پشتیبانی یکتا فایل
سلام خواهش ميکنيم
 
نویسنده نظر : شيوا شيرين‌بانو - 1398/5/2 (1:15)
پست خيلي جالبي بود ممنون بابت معرفي
 
پاسخ پشتیبانی یکتا فایل
با سلام لطف مي کنيد
 

برای ارسال نظر وارد سایت شوید