Learning Javascript PDF
Learning Javascript PDF
زﺑﺎن ﻫﺎي ﺗﺤﺖ ﮐﺎرﺑﺮ زﺑﺎن ﻫﺎﯾﯽ ﻫﺴﺘﻨﺪ ﮐﻪ ﺑﻮﺳﯿﻠﻪ ﻣﺮورﮔﺮ و ﻓﻘﻂ ﺑﺮ روي clientﻫﺎ اﺟﺮا ﻣﯽ ﺷﻮﻧﺪ .در واﻗﻊ ﺑﺮاي اﺟﺮاي اﯾﻦ ﮔﻮﻧﻪ زﺑﺎن
ﻫﺎ ﺑﻪ ﺳﺮور ﻫﺎ ﻧﯿﺎزي ﻧﯿﺴﺖ .زﺑﺎن ﻫﺎﯾﯽ ﻫﻤﭽﻮن HTML , CSS , JAVASCRIPTاز اﯾﻦ دﺳﺖ ﻫﺴﺘﻨﺪ .از اﯾﻦ زﺑﺎن ﻫﺎ ﻣﻌﻤﻮﻻ
ﺑﻪ ﺗﻨﻬﺎﯾﯽ ﺑﺮاي اﯾﺠﺎد ﺳﺎﯾﺖ ﻫﺎي ﺑﺎ ﻣﺤﺘﻮاي ﺛﺎﺑﺖ ﮐﻪ اﺻﻄﻼﺣﺎ ﺑﻪ آن ﻫﺎ ﺳﺎﯾﺖ ﻫﺎي ) staticاﯾﺴﺘﺎ( ﻣﯽ ﮔﻮﯾﻨﺪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
در ﻣﻘﺎﺑﻞ اﯾﻦ زﺑﺎن ﻫﺎ ،زﺑﺎن ﻫﺎي ﺗﺤﺖ ﺳﺮور وﺟﻮد دارﻧﺪ ﮐﻪ ﺑﺮاي اﺟﺮا ﻧﯿﺎز ﺑﻪ ﺳﺮور ﻫﺎ داﺷﺘﻪ و ﻣﯽ ﺑﺎﯾﺴﺖ ﺑﺮاي اﺟﺮا ﺣﺘﻤﺎ ﺑﺮ روي ﺳﺮور
ﻫﺎ ﻗﺮار ﺑﮕﯿﺮﻧﺪ .اﯾﻨﮕﻮﻧﻪ زﺑﺎن ﻫﺎ اﻣﮑﺎن ﺑﺮﻗﺮاري ارﺗﺒﺎط ﺑﺎ ﭘﺎﯾﮕﺎه داده ) (Databaseرا دارﻧﺪ .زﺑﺎن ﻫﺎﯾﯽ ﻫﻤﭽﻮن ASP ، PHPو JSP
از اﯾﻦ دﺳﺖ ﻫﺴﺘﻨﺪ .از اﯾﻦ زﺑﺎن ﻫﺎ ﺑﺮاي اﯾﺠﺎد ﺳﺎﯾﺖ ﻫﺎي ﺑﺎ ﻣﺤﺘﻮاي ﭘﻮﯾﺎ ﮐﻪ اﺻﻄﻼﺣﺎ ﺑﻪ آن ﻫﺎ ﺳﺎﯾﺖ ﻫﺎي ) dynamicﭘﻮﯾﺎ( ﮔﻔﺘﻪ
ﻣﯽ ﺷﻮد اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
زﺑﺎن JavaScriptﯾﮑﯽ از زﺑﺎن ﻫﺎي ﻣﻬﻢ ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ وب و ﺗﺤﺖ ﮐﺎرﺑﺮ ) (client-sideﻣﯽ ﺑﺎﺷﺪ .اﯾﻦ زﺑﺎن اوﻟﯿﻦ ﺑﺎر در ﺳﺎل
١٩٩۵اراﺋﻪ ﺷﺪ و وﻇﯿﻔﻪ آن ﺗﻨﻬﺎ ارزش ﺳﻨﺠﯽ ﻋﻨﺎﺻﺮ ﻓﺮم ﺑﻮد.
٢
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
از BOMﺑﺮاي دﺳﺘﺮﺳﯽ و دﺳﺘﮑﺎري وﯾﮋﮔﯽ ﻫﺎي ﭘﻨﺠﺮه ﯾﮏ ﻣﺮورﮔﺮ ﻣﯽ ﺗﻮان اﺳﺘﻔﺎده ﮐﺮد.
ﻃﺮاﺣﺎن وب ﺑﺎ اﺳﺘﻔﺎده از BOMﻣﯽ ﺗﻮاﻧﺪ ﮐﺎرﻫﺎﯾﯽ ﻫﻤﭽﻮن ﺟﺎﺑﺠﺎﯾﯽ ﭘﻨﺠﺮه ﻫﺎ و ﺗﻐﯿﯿﺮ ﻣﺘﻦ ﻣﻮﺟﻮد در ﻧﻮار وﺿﻌﯿﺖ ﻣﺮورﮔﺮ و دﯾﮕﺮ
ﮐﺎرﻫﺎﯾﯽ ﮐﻪ ارﺗﺒﺎط ﻣﺴﺘﻘﯿﻤﯽ ﺑﺎ ﻗﺴﻤﺖ Contentﺳﻨﺪ ﻧﺪارد اﻧﺠﺎم دﻫﻨﺪ .
ﻣﻌﻤﻮﻵ BOMﺑﺎ ﭘﻨﺠﺮه ﻫﺎ و ﻓﺮﯾﻢ ﻫﺎ ﺳﺮ و ﮐﺎر داﺷﺘﻪ و ﻣﯽ ﺗﻮان از ﻃﺮﯾﻖ آن ﮐﺎرﻫﺎي زﯾﺮ را اﻧﺠﺎم داد :
ﺑﺎز ﮐﺮدن ﭘﻨﺠﺮه ﻫﺎي . Popup
ﺗﻮاﻧﺎﯾﯽ ﺑﺎزﮐﺮدن ﭘﻨﺠﺮه ﻫﺎي ﺟﺪﯾﺪ و ﺗﻐﯿﯿﺮ اﻧﺪازه و ﺟﺎﺑﺠﺎﯾﯽ و ﯾﺎ ﺑﺴﺘﻦ آن ﻫﺎ .
ﺑﺪﺳﺖ آوردن اﻃﻼﻋﺎﺗﯽ از ﻣﺮورﮔﺮ )ﻧﻮع ,ورژن و . (...
ﺑﺪﺳﺖ آوردن اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﺳﻨﺪ و ﻣﻮﻗﻌﯿﺖ ﺻﻔﺤﻪ اي ﮐﻪ در ﻣﺮورﮔﺮ ﺑﺎز ﺷﺪه اﺳﺖ .
ﺑﺪﺳﺖ آوردن اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد وﺿﻮح ) (resolutionﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﮐﺎرﺑﺮ .
ﭘﺸﺘﯿﺒﺎﻧﯽ از Cookieﻫﺎ .
ﺑﻪ دﻟﯿﻞ اﯾﻨﮑﻪ ﻫﯿﭻ ﮔﻮﻧﻪ اﺳﺘﺎﻧﺪاردي ﺑﺮاي BOMوﺟﻮد ﻧﺪارد ﻫﺮ ﻣﺮورﮔﺮ ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﺻﻮرﺗﯽ ﻣﺘﻔﺎوت از آن ﭘﺸﺘﯿﺒﺎﻧﯽ ﮐﻨﺪ .ﻣﺎﻧﻨﺪ اﺷﯿﺎء
Windowو Navigatorﮐﻪ ﻫﺮ ﻣﺮورﮔﺮ ﻣﺘﺪﻫﺎ و ﺧﺎﺻﯿﺖ ﻫﺎي ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮدي ﺑﺮاي آن ﻫﺎ ﺗﻌﺮﯾﻒ ﮐﺮده اﺳﺖ.
اﯾﻨﮏ ﺑﻪ ﭼﻨﺪ ﻣﻔﻬﻮم اﺻﻠﯽ در زﺑﺎن JavaScriptﻣﯽ ﭘﺮدازﯾﻢ :
ﺟﺎوا اﺳﮑﺮﯾﭙﺖ Case-Sensitiveاﺳﺖ :ﯾﻌﻨﯽ ﻫﻤﻪ ﭼﯿﺰ ﻣﺎﻧﻨﺪ ﻧﺎم ﻣﺘﻐﯿﺮ ﻫﺎ ،ﻧﺎم ﺗﻮاﺑﻊ ،ﻋﻤﻠﮕﺮ ﻫﺎ و ﻫﺮ ﭼﯿﺰ دﯾﮕﺮي
ﻧﺴﺒﺖ ﺑﻪ ﺣﺮوف ﮐﻮﭼﮏ و ﺑﺰرگ ﺣﺴﺎس اﺳﺖ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﻣﺘﻐﯿﺮي ﺑﺎ ﻧﺎم Testﺑﺎ ﻣﺘﻐﯿﺮي ﺑﺎ ﻧﺎم testﻣﺘﻔﺎوت اﺳﺖ.
ﻣﺘﻐﯿﺮﻫﺎ ﺑﺪون ﻧﻮع ﻫﺴﺘﻨﺪ :ﺑﺮﺧﻼف زﺑﺎن ﻫﺎﯾﯽ ﻫﻤﭽﻮن javaو , Cﻣﺘﻐﯿﺮﻫﺎ ﻧﻮع ﺧﺎﺻﯽ ﻧﻤﯽ ﮔﯿﺮﻧﺪ .در ﻋﻮض ﻫﺮ ﻣﺘﻐﯿﺮ
ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎ ﮐﻠﻤﻪ ﮐﻠﯿﺪي varﺗﻌﺮﯾﻒ ﺷﺪه و ﻣﻘﺪاري را ﺑﻪ ﻋﻨﻮان ﻣﻘﺪار اوﻟﯿﻪ ﺑﭙﺬﯾﺮد .در واﻗﻊ ﻣﺘﻐﯿﺮﻫﺎ "ﻣﻘﺪار ﮔﺮا" ﻫﺴﺘﻨﺪ .ﯾﻌﻨﯽ
در ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺗﻌﺮﯾﻒ )ﻣﻘﺪاردﻫﯽ( ﻣﯽ ﺷﻮﻧﺪ ﻧﻮﻋﺸﺎن ﻧﯿﺰ ﻣﺸﺨﺺ ﻣﯽ ﮔﺮدد .
ﻗﺮار دادن );( در اﻧﺘﻬﺎي ﻫﺮ دﺳﺘﻮر اﺧﺘﯿﺎري اﺳﺖ :دﺳﺘﻮرات در ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﻪ );( ﺧﺘﻢ ﺷﻮﻧﺪ ﯾﺎ ﻧﺸﻮﻧﺪ .در
ﺻﻮرت ﻗﺮار ﻧﺪادن );( ،ﺟﺎوا اﺳﮑﺮﯾﭙﺖ اﻧﺘﻬﺎي ﻫﺮ ﺧﻂ را ﺑﻪ ﻋﻨﻮان ﭘﺎﯾﺎن دﺳﺘﻮر در ﻧﻈﺮ ﺧﻮاﻫﺪ ﮔﺮﻓﺖ .اﻣﺎ روش ﺻﺤﯿﺢ ،اﺳﺘﻔﺎده
از );( در اﻧﺘﻬﺎي دﺳﺘﻮرات اﺳﺖ .ﭼﻮن ﺑﻌﻀﯽ از ﻣﺮورﮔﺮﻫﺎ از روش اول ﭘﺸﺘﯿﺒﺎﻧﯽ ﻧﻤﯽ ﮐﻨﺪ و ﻣﻤﮑﻦ اﺳﺖ در اﺟﺮاي ﮐﺪﻫﺎ دﭼﺎر
ﻣﺸﮑﻞ ﺷﻮﻧﺪ.
درج ﺗﻮﺿﯿﺤﺎت در ﺟﺎوا اﺳﮑﺮﯾﭙﺖ :ﺑﺮاي درج ﺗﻮﺿﯿﺤﺎت در ﻣﯿﺎن ﮐﺪﻫﺎ از روش ﻫﺎي زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﻫﻤﭽﻮن C
و C++ﻣﯽ ﺗﻮان اﺳﺘﻔﺎده ﻧﻤﻮد ﯾﻌﻨﯽ از //ﯾﺎ : /* */
//this is a single-line comment
در اﯾﻦ ﻣﺜﺎل ﻣﺘﻐﯿﺮي ﺑﺎ ﻧﺎم testاﻋﻼن ﺷﺪه و ﻣﻘﺪار اوﻟﯿﻪ ' 'aliرا ﻣﯽ ﮔﯿﺮد.
ﭼﻮن ﻣﺘﻐﯿﺮﻫﺎ ﺑﺪون ﻧﻮع ﻫﺴﺘﻨﺪ ﻣﻔﺴﺮ ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﺧﻮد ﺑﻪ ﺧﻮد ﻧﻮع testرا Stringدر ﻧﻈﺮ ﻣﯽ ﮔﯿﺮد.
ﻣﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﻢ دو ﯾﺎ ﭼﻨﺪ ﻣﺘﻐﯿﺮ را ﻫﻤﺰﻣﺎن ﺗﻌﺮﯾﻒ ﮐﻨﯿﻢ.
٣
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺑﺎﯾﺪ ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﻣﺘﻐﯿﺮﻫﺎﯾﯽ ﮐﻪ ﺑﺎ ﯾﮏ Varﺗﻌﺮﯾﻒ ﻣﯽ ﺷﻮد ﻣﻤﮑﻦ اﺳﺖ ﻧﻮع ﯾﮑﺴﺎﻧﯽ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﻨﺪ.
Var ;test_1='ali' , age=25
ﺑﺮﺧﻼف ﺟﺎوا ﻣﺘﻐﯿﺮﻫﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ در زﻣﺎن ﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻘﺪارﻫﺎي ﻣﺘﻔﺎوﺗﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪ .اﯾﻦ ﯾﮑﯽ از اﻣﺘﯿﺎزات ﻣﺘﻐﯿﺮ
ﻫﺎي ﺑﺪون ﻧﻮع در زﺑﺎن ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﺑﻪ ﺷﻤﺎر ﻣﯽ رود.
ﯾﮑﯽ دﯾﮕﺮ از اﻣﺘﯿﺎزات و ﯾﺎ ﺷﺎﯾﺪ ﺟﺬاﺑﯿﺖ ﻫﺎي ) Java Scriptﮐﻪ در ﺧﯿﻠﯽ از زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ دﯾﮕﺮ وﺟﻮد ﻧﺪارد( اﯾﻦ اﺳﺖ ﮐﻪ
ﻻزم ﻧﯿﺴﺖ ﮐﻪ ﻣﺘﻐﯿﺮ ﻫﺎ را ﻗﺒﻞ از ﻣﻘﺪار دﻫﯽ ،اﻋﻼن ﮐﻨﯿﻢ :
;"var sTest="hello
;"sTest2=sTest + "world
alert (sTest2); // hello world
در ﻣﺜﺎل ﻓﻮق ﻣﺘﻐﯿﺮ sTest2ﻗﺒﻞ از ﻣﻘﺪاردﻫﯽ اﻋﻼن ﻧﺸﺪه اﺳﺖ .
ﻣﻮﻗﻌﯽ ﮐﻪ ﻣﻔﺴﺮ ﺑﻪ ﭼﻨﯿﻦ ﻣﺘﻐﯿﺮﻫﺎي ﮐﻪ ﺑﺪون اﻋﻼن ﺷﺪن ﻣﻘﺪاردﻫﯽ ﻣﯽ ﺷﻮﻧﺪ ,ﻣﯽ رﺳﺪ ﯾﮏ ﻣﺘﻐﯿﺮ ﺳﺮاﺳﺮي ﺑﺎ آن ﻧﺎم اﯾﺠﺎد ﮐﺮده و
ﻣﻘﺪاري را ﺑﻪ آن اﺧﺘﺼﺎص ﻣﯽ دﻫﺪ.
ﺑﺎ اﯾﻦ وﺟﻮد ﭘﯿﺸﻨﻬﺎد ﻣﯽ ﺷﻮد ﻫﻤﯿﺸﻪ ﻗﺒﻞ از ﺑﻪ ﮐﺎرﮔﯿﺮي ﻣﺘﻐﯿﺮﻫﺎ آن ﻫﺎ را اﻋﻼن ﮐﻨﯿﺪ.
ﻧﮑﺘﻪ اﯾﻨﮑﻪ ﮐﻪ ﻣﺘﻐﯿﺮي ﮐﻪ اﻋﻼن ﻣﯽ ﺷﻮد و ﻣﻘﺪار ﻧﻤﯽ ﮔﯿﺮد ﺑﺎ ﻣﺘﻐﯿﺮي ﮐﻪ اﺻﻶ اﻋﻼن ﻫﻢ ﻧﺸﺪه اﺳﺖ ﮐﺎﻣﻼ ﻣﺘﻔﺎوت اﺳﺖ .ﻫﺮ ﭼﻨﺪ ﮐﻪ
ﻋﻤﻠﮕﺮ typeofﺑﯿﻦ اﯾﻦ دو ﺗﻔﺎوﺗﯽ ﻗﺎﺋﻞ ﻧﻤﯽ ﺷﻮد .و ﺑﺮاي ﻫﺮ دو ﻣﺘﻐﯿﺮ ﻣﻘﺪار Undefinedرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ,اﮔﺮ ﭼﻪ ﻓﻘﻂ ﯾﮑﯽ از آن
ﻫﺎ ) (oTemp2ﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ.
; Var oTemp
; )alert (typeof oTemp "// outputs "Undefined
; )alert (typeof oTemp2 "// outputs "Undefined
اﮔﺮ ﺷﻤﺎ از oTemp2ﺑﻪ وﺳﯿﻠﻪ ي ﻫﺮ ﻋﻤﻠﮕﺮي ﺑﻪ ﻏﯿﺮ از typeofاﺳﺘﻔﺎده ﮐﻨﯿﺪ ﯾﮏ ﺧﻄﺎ رخ ﺧﻮاﻫﺪ داد :
۵
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﻣﻘﺪار Undefinedزﻣﺎﻧﯽ ﮐﻪ ﯾﮏ ﺗﺎﺑﻊ ﻣﻘﺪاري را ﺑﺮﻧﮕﺮداﻧﺪ ﻫﻢ Returnﻣﯽ ﺷﻮد.
{ )( Function Testfunc
// leave the function black
}
”alert( TestFunc() == undefined ); //outputs “true
۶
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺗﺒﺪﯾﻞ اﻧﻮاع :
ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﺗﻮاﺑﻌﯽ را ﺑﺮاي ﺗﺒﺪﯾﻞ اﻧﻮاع ﻓﺮاﻫﻢ آورده اﺳﺖ.
ﺳﻪ ﻧﻮع داده Number , Boolو Stringﻣﺘﺪي ﺑﻪ ﻧﺎم )( tostringﺑﺮاي ﺗﺒﺪﯾﻞ ﺑﻪ رﺷﺘﻪ دارﻧﺪ.
اﯾﻦ ﻣﺘﺪ ﺑﺮاي ﻣﺘﻐﯿﺮ ﻫﺎي از ﻧﻮع Booleanﯾﮑﯽ از ﻣﻘﺎدﯾﺮ trueو falseرا ﺑﺴﺘﻪ ﺑﻪ ﻣﻘﺪار ﻣﺘﻐﯿﺮ ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ :
اﯾﻦ ﻣﺘﺪ ﻫﺎ ﻓﻘﻂ ﺑﺮ روي رﺷﺘﻪ ﻫﺎي ﺣﺎوي ﻋﺪد ﮐﺎر ﻣﯽ ﮐﻨﻨﺪ و ﺑﺮ روي ﺑﻘﯿﻪ اﻧﻮاع ﻣﻘﺪار NaNرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﻨﺪ.
ﻣﺘﺪ )( parseIntاز اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ رﺷﺘﻪ ﺷﺮوع ﻣﯽ ﮐﻨﺪ اﮔﺮ ﻋﺪد ﺑﻮد آن را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ﻣﻘﺪار NaNرا ﺑﺮﻣﯽ ﮔﺮداﻧﺪ.
اﯾﻦ روﻧﺪ ﺗﺎ آﺧﺮﯾﻦ ﮐﺎراﮐﺘﺮ اداﻣﻪ ﭘﯿﺪا ﻣﯽ ﮐﻨﺪ ﺗﺎ اﯾﻨﮑﻪ ﺑﻪ ﮐﺎراﮐﺘﺮي ﻏﯿﺮ ﻋﺪدي ﺑﺮﺳﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل اﯾﻦ ﻣﺘﺪ ﻋﺒﺎرت " "123redرا ﺑﻪ
ﺻﻮرت 123ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ.
ﻣﺘﺪ )( parseFloatﻧﯿﺰ ﻣﺜﻞ )( parseIntﮐﺎر ﻣﯽ ﮐﻨﺪ و از اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﺷﺮوع ﺑﻪ ﺟﺴﺘﺠﻮ ﻣﯽ ﮐﻨﺪ .اﻟﺒﺘﻪ در اﯾﻦ ﻣﺘﺪ اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ
ﻧﻘﻄﻪ ﺣﺴﺎب ﻧﻤﯽ ﺷﻮد و آن را ﺑﻪ ﻫﻤﺎن ﺻﻮرت ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ.
٧
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﮔﺮ دو ﮐﺎراﮐﺘﺮ ﻧﻘﻄﻪ در رﺷﺘﻪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ دوﻣﯿﻦ ﻧﻘﻄﻪ ﺑﻪ ﻋﻨﻮان invalidﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد و ﻋﻤﻠﯿﺎت ﺗﺒﺪﯾﻞ ﻣﺘﻮﻗﻒ ﻣﯽ ﺷﻮد .ﻣﺜﺎل
ﻫﺎ :
ﺗﺎﺑﻊ )( Booleanﻣﻘﺪار Trueرا وﻗﺘﯽ ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ رﺷﺘﻪ ﺷﺎﻣﻞ ﺣﺪاﻗﻞ ﯾﮏ ﮐﺎرﮐﺘﺮ ,ﯾﮏ ﻋﺪد ﺑﺰرﮔﺘﺮ از ﺻﻔﺮ و ﯾﺎ ﯾﮏ ﺷﯽء ﺑﺎﺷﺪ
و ﻣﻘﺪار Falseرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﻫﺮ ﮔﺎه رﺷﺘﻪ ﺧﺎﻟﯽ اﺳﺖ ﯾﺎ ﺻﻔﺮ اﺳﺖ ﯾﺎ undefinedو ﯾﺎ nullﺑﺎﺷﺪ :
ﺗﺎﺑﻊ )( Numberﮐﺎري ﺷﺒﯿﻪ )( ParseIntو )( ParseFloatرا اﻧﺠﺎم ﻣﯽ دﻫﺪ اﻣﺎ ﺗﻔﺎوت ﻫﺎﯾﯽ ﻫﻢ دارد .
اﮔﺮ ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﻣﺘﺪ ﻫﺎي )( ParseIntو )(ParseFloatﻣﻘﺪار ﮔﺮﻓﺘﻪ ﺷﺪه را ﻓﻘﻂ ﺗﺎ اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﺑﯽ ارزش ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪﻧﺪ.
ﻣﺜﻼ رﺷﺘﻪ ” “4.5.6ﺑﻪ 4.5ﺗﺒﺪﯾﻞ ﺧﻮاﻫﻨﺪ ﮐﺮد .اﻣﺎ ﮐﺎرﺑﺮد ﻣﺘﺪ )( Numberﺑﺮاي اﯾﻦ رﺷﺘﻪ ﻣﻘﺪار NaNرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ زﯾﺮا اﯾﻦ
رﺷﺘﻪ از ﻧﻈﺮ ﻣﺘﺪ )( Numberدر ﮐﻞ اﻣﮑﺎن ﺗﺒﺪﯾﻞ ﺑﻪ ﯾﮏ ﻋﺪد را ﻧﺪارد .
اﮔﺮ رﺷﺘﻪ اي اﻣﮑﺎن ﺗﺒﺪﯾﻞ ﺑﻪ ﯾﮏ ﻋﺪد را داﺷﺘﻪ ﺑﺎﺷﺪ ﻣﺘﺪ )( Numberﺑﺮاي اﯾﻨﮑﻪ از )( ParseIntﯾﺎ )( ParseFloatاﺳﺘﻔﺎده ﮐﻨﺪ
ﺗﺼﻤﯿﻢ ﻣﯽ ﮔﯿﺮد .در ﻣﺜﺎل زﯾﺮ ﺣﺎﺻﻞ اﺟﺮاي ﻣﺘﺪ )( Numberﺑﺮاي اﻧﻮاع داده ﻫﺎ را ﻧﺸﺎن ﻣﯽ دﻫﺪ :
)Number(false 0
)Number(true 1
)Number(undefined NaN
)Number(null 0
)”Number(“5.5 5.5
)”Number(“56 56
)”Number(“5.6.7 NaN
))(Number(new Object NaN
)Number(100 100
ﺳﺎده ﺗﺮﯾﻦ ﺗﺎﺑﻊ ﻫﻢ )( Stringاﺳﺖ ﮐﻪ ﻫﻤﺎن ﭼﯿﺰي را ﮐﻪ ﻣﯽ ﮔﯿﺮد ﺑﻪ ﻋﻨﻮان رﺷﺘﻪ ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ :
var s1 = String(null); // ””null
٨
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺟﺎوااﺳﮑﺮﯾﭙﺖ در ﻣﺮورﮔﺮ ﻫﺎ :
ﺣﺎل ﮐﻪ ﺗﺎ ﺣﺪودي ﺑﺎ ﺑﺴﯿﺎري از ﻣﻔﺎﻫﯿﻢ ﭘﺎﯾﻪ ﺟﺎوااﺳﮑﺮﯾﭙﺖ آﺷﻨﺎ ﺷﺪﯾﻢ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻃﺮﯾﻘﻪ اﺳﺘﻔﺎده و ﻗﺮار دادن آن ﻫﺎ در ﺻﻔﺤﻪ را ﺑﺮرﺳﯽ
ﮐﻨﯿﻢ HTML .ﺑﺮاي اﺳﺘﻔﺎده از ﺟﺎوااﺳﮑﺮﯾﭙﺖ در ﺻﻔﺤﺎت ﺗﮕﯽ ﺑﻪ ﻧﺎم scriptرا ﻓﺮاﻫﻢ ﮐﺮده ﮐﻪ در اداﻣﻪ ﺑﺎ آن آﺷﻨﺎ ﺧﻮاﻫﯿﻢ ﺷﺪ .
ﻋﻤﻮﻣﺎ از اﯾﻦ ﺗﮓ در داﺧﻞ ﺗﮓ headﺻﻔﺤﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد و ﻣﯽ ﺗﻮاﻧﺪ ﯾﮏ ،دو ﯾﺎ ﺳﻪ ﺻﻔﺖ را ﺑﮕﯿﺮد .ﺻﻔﺖ languageﮐﻪ ﻧﻮع
زﺑﺎن اﺳﺘﻔﺎده ﺷﺪه را ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﺪ ،ﺻﻔﺖ اﺧﺘﯿﺎري srcﮐﻪ ﻣﮑﺎن ﯾﮏ ﻓﺎﯾﻞ ﺧﺎرﺟﯽ ﺟﺎوااﺳﮑﺮﯾﭙﺖ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ و ﺻﻔﺖ typeﮐﻪ
ﻧﻮع MIME TYPEﯾﮏ ﻓﺎﯾﻞ ﺧﺎرﺟﯽ ﺟﺎوااﺳﮑﺮﯾﭙﺖ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ و ﺑﺎﯾﺪ ﺑﺮاﺑﺮ ﻋﺒﺎرت text/javascriptﻗﺮار داده ﺷﻮد .
ﻣﻘﺪار ﺻﻔﺖ languageﻣﻌﻤﻮﻻ ﺑﺮاﺑﺮ javascriptﯾﺎ ﯾﮑﯽ از ﻧﺴﺨﻪ ﻫﺎي آن ﻣﺜﻼ javascript 1.3ﺗﻌﯿﯿﻦ ﻣﯽ ﺷﻮد ) .اﮔﺮ از ﺻﻔﺖ
javascriptﭼﺸﻢ ﭘﻮﺷﯽ ﺷﻮد ،ﻣﺮورﮔﺮ ﻫﺎ آﺧﺮﯾﻦ ﻧﺴﺨﻪ ﻣﻮﺟﻮد اﯾﻦ زﺑﺎن را در ﻧﻈﺮ ﻣﯽ ﮔﯿﺮﻧﺪ( .
ﮐﺪ ﻫﺎي ﺟﺎوااﺳﮑﺮﯾﭙﺖ در داﺧﻞ ﺗﮓ scriptﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮﻧﺪ اﻣﺎ در ﺻﻮرﺗﯽ ﮐﻪ ﻫﻤﺰﻣﺎن از ﺻﻔﺖ srcﻧﯿﺰ اﺳﺘﻔﺎده ﺷﻮد در اﯾﻦ ﺻﻮرت
ﻣﻌﻤﻮﻻ ﻣﺮورﮔﺮ ﻫﺎ ﮐﺪ ﻫﺎي داﺧﻞ ﺗﮓ scriptرا ﻧﺎدﯾﺪه ﻣﯽ ﮔﯿﺮﻧﺪ .ﺑﻪ ﻣﺜﺎل زﯾﺮ دﻓﺖ ﮐﻨﯿﺪ :
><html
><head
><title>Title of Page</title
>”<script language=”JavaScript
;var i = 0
></script
><script language=”JavaScript” src=”../scripts/external.js”></script
></head
><body
><!-- body goes here --
></body
></html
در اﯾﻦ ﻣﺜﺎل ﻫﺮ دو ﻧﻮع ﺗﻌﺮﯾﻒ ﮐﺪ ﻫﺎي ﺟﺎوااﺳﮑﺮﯾﭙﺖ در ﺻﻔﺤﻪ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ .ﺗﮓ اﺳﮑﺮﯾﭙﺖ اول ﺑﻪ ﺻﻮرت ) inlineدرون
ﺧﻄﯽ( ﺑﻪ ﺗﻌﺮﯾﻒ ﮐﺪ ﻫﺎ ﭘﺮداﺧﺘﻪ اﺳﺖ .و در ﺗﮓ scriptدوم ﺑﻪ ﯾﮏ ﻓﺎﯾﻞ ﺧﺎرﺟﯽ javascriptاﺷﺎره ﺷﺪه اﺳﺖ .
ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺧﻮد ﺗﺎﺑﻊ )( sayhiرا در ﻓﺎﯾﻠﯽ ﺧﺎرﺟﯽ ﻣﺜﻼ ﺑﻪ ﻧﺎم external.jsذﺧﯿﺮه ﮐﺮده و آن را ﺑﻪ ﺻﻮرت زﯾﺮ در ﺻﻔﺤﻪ ﻣﻮرد ﻧﻈﺮ
ﻟﯿﻨﮏ )اﻟﺤﺎق ( ﮐﻨﯿﻢ :
٩
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ
><html
www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
><head
><title>Title of Page</title
><script language=”JavaScript” src=”external.js”></script
></head
><body
><!-- body goes here --
></body
></html
ﺗﻔﺎوت ﻫﺎي ﺑﻪ ﮐﺎرﮔﯿﺮي ﮐﺪ ﺑﻪ ﺻﻮرت inlineو : External
ﭼﻪ ﻣﻮﻗﻊ ﻣﺎ ﺑﺎﯾﺪ از روش inlineو ﭼﻪ ﻣﻮﻗﻊ ﺑﺎﯾﺪ از روش externalﺑﺮاي ﺑﻪ ﮐﺎرﮔﯿﺮي ﮐﺪ ﻫﺎي ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﺳﺘﻔﺎده ﮐﻨﯿﻢ ؟ ﻫﺮ ﭼﻨﺪ
ﮐﻪ ﻗﺎﻧﻮن ﺳﻔﺖ و ﺳﺨﺘﯽ ﺑﺮاي اﺳﺘﻔﺎده از ﻫﺮ ﯾﮏ از روش ﻫﺎي ﻓﻮق وﺟﻮد ﻧﺪارد اﻣﺎ ﺑﻪ دﻻﯾﻞ زﯾﺮ اﺳﺘﻔﺎده از روش inlineﻣﻨﺎﺳﺐ ﺑﻪ ﻧﻈﺮ
ﻧﻤﯽ رﺳﺪ :
اﻣﻨﯿﺖ :ﻫﺮ ﮐﺴﯽ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎ ﺑﺎز ﮐﺮدن sourceﺻﻔﺤﻪ ﺷﻤﺎ ،ﮐﺪ ﻫﺎي ﺷﻤﺎ را ﺑﺒﯿﻨﺪ و ﭼﻪ ﺑﺴﺎ ﺑﻪ ﺣﻔﺮه ﻫﺎي اﻣﻨﯿﺘﯽ آن ﭘﯽ ﺑﺮده
و در ﭘﯽ ﭘﯿﺎده ﺳﺎزي اﻗﺼﺎد ﺷﻮم ﺧﻮد ﺑﺮآﯾﺪ .
ذﺧﯿﺮه ﺷﺪن در ﺣﺎﻓﻈﻪ ﻣﺮورﮔﺮ ﻫﺎ :ﯾﮑﯽ از ﻣﺰﯾﺖ ﻫﺎي اﺳﺘﻔﺎده از روش Externalاﯾﻦ اﺳﺖ ﮐﻪ ﻓﺎﯾﻞ ﻫﺎي ﺧﺎرﺟﯽ
ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﭘﺲ از اوﻟﯿﻦ ﺑﺎرﮔﺬاري در ﺣﺎﻓﻈﻪ ﻧﻬﺎن ﻣﺮورﮔﺮ ) (cacheذﺧﯿﺮه ﺷﺪه و در دﻓﻌﺎت ﺑﻌﺪي ﻓﺎﯾﻞ ﺧﺎرﺟﯽ از cache
ﻓﺮاﺧﻮاﻧﯽ و اﺳﺘﻔﺎده ﺧﻮاﻫﻨﺪ ﺷﺪ .
ﻧﮕﻪ داري ﮐﺪ ﻫﺎ :ﭼﻨﺎﻧﭽﻪ ﺷﻤﺎ ﺑﺨﻮاﻫﯿﺪ از ﯾﮏ ﮐﺪ در ﭼﻨﺪﯾﻦ ﺻﻔﺤﻪ وب اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﻣﻄﻤﺌﻨﺎ اﺳﺘﻔﺎده از روش اول ﻣﻮﺟﺐ
اﻓﺰاﯾﺶ ﮐﺪ ﻧﻮﯾﺴﯽ و در ﻧﺘﯿﺠﻪ ﺣﺠﻢ ﺻﻔﺤﻪ ﺧﻮاﻫﺪ ﺷﺪ اﻣﺎ ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از روش دوم ﺑﺮاي ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﮐﻨﯿﻢ .
ﻣﮑﺎن ﻗﺮار دادن ﺗﮓ scriptدر ﺻﻔﺤﻪ :
ﻣﻌﻤﻮﻻ ﮐﺪ ﻫﺎ و ﺗﻮاﺑﻊ ﺗﻌﺮﯾﻔﯽ ﺑﻮﺳﯿﻠﻪ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﺎﯾﺪ در ﻗﺴﻤﺖ headﺻﻔﺤﻪ ﻗﺮار ﮔﯿﺮد ﺗﺎ ﺑﻪ ﻣﻮﻗﻊ ﺑﺎرﮔﺰاري ﺷﺪه و ﺑﺮاي اﺳﺘﻔﺎده در
ﻗﺴﻤﺖ bodyﺻﻔﺤﻪ آﻣﺎده اﺳﺘﻔﺎده و ﺻﺪا زدن ﺑﺎﺷﻨﺪ .ﻣﻌﻤﻮﻻ ﮐﺪ ﻫﺎﯾﯽ ﮐﻪ درآن ﻫﺎ ﺗﻮاﺑﻊ از ﻗﺒﻞ ﺗﻌﺮﯾﻒ ﺷﺪه ﺻﺪا زده ﻣﯽ ﺷﻮﻧﺪ در
ﻗﺴﻤﺖ bodyﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ .
ﻗﺮاردادن ﺗﮓ scriptدر داﺧﻞ ﻗﺴﻤﺖ bodyﻣﻮﺟﺐ اﺟﺮاﺷﺪن ﮐﺪ ﻫﺎي داﺧﻞ آن ﺑﻪ ﻣﺤﺾ ﺑﺎرﮔﺬاري ﻗﺴﻤﺘﯽ از ﺻﻔﺤﻪ در ﻣﺮورﮔﺮ
ﺧﻮاﻫﺪ ﺷﺪ .ﺑﺮاي ﻣﺜﺎل ﺑﻪ ﺗﮑﻪ ﮐﺪ زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ :
><html
><head
><title>Title of Page</title
>”<script language=”JavaScript
{ )(function sayHi
;)”alert(“Hi
}
></script
></head
><body
>”<script language=”JavaScript
;)(sayHi
></script
><p>This is the first text the user will see.</p
></body
></html
در ﮐﺪ ﻓﻮق ﻣﺘﺪ )( sayHiدﻗﯿﻘﺎ ﻗﺒﻞ از ﻧﻤﺎﯾﺶ ﻫﺮ ﮔﻮﻧﻪ ﻣﺘﻨﯽ در ﺻﻔﺤﻪ اﺟﺮا ﺧﻮاﻫﺪ ﺷﺪ .ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﭘﻨﺠﺮه alertﻗﺒﻞ از ﻣﺘﻦ
This is the first text the user will seeاﺟﺮا ﺧﻮاﻫﺪ ﺷﺪ .اﯾﻦ روش ﺑﺮاي ﺻﺪا زدن ﻣﺘﺪ ﻫﺎي ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﺻﻼ ﭘﯿﺸﻨﻬﺎد
ﻧﻤﯽ ﺷﻮد و ﻣﯽ ﺑﺎﯾﺴﺖ ﺑﻪ ﺟﺎي آن از ﮐﻨﺘﺮﻟﮕﺮ ﻫﺎي ﺣﻮادث ) (Event Handlerاﺳﺘﻔﺎده ﮐﺮد .ﻣﺜﻼ :
١٠
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
><html
><head
><title>Title of Page</title
>”<script language=”JavaScript
{ )(function sayHi
;)”alert(“Hi
}
></script
></head
><body
><input type=”button” value=”Call Function” onclick=”sayHi()” /
></body
></html
در اﯾﻨﺠﺎ دﮐﻤﻪ اي ﺑﺎ اﺳﺘﻔﺎده از ﺗﮓ inputاﯾﺠﺎد ﺷﺪه اﺳﺖ ﮐﻪ در ﺻﻮرت ﮐﻠﯿﮏ ﺑﺮ روي آن ﺗﺎﺑﻊ )( sayHiﻓﺮاﺧﻮاﻧﯽ ﻣﯽ ﺷﻮد .ﺻﻔﺖ
onclickدر اﯾﻨﺠﺎ ﯾﮏ ﮐﻨﺘﺮﻟﮕﺮ ﺣﺎدﺛﻪ اﺳﺖ ﮐﻪ ﺑﻪ روﯾﺪاد رخ داده ﭘﺎﺳﺦ ﻣﯽ دﻫﺪ .
ﻧﮑﺘﻪ اﯾﻨﮑﻪ ازآﻧﺠﺎﯾﯽ ﮐﻪ ﮐﺪ ﻫﺎي ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﻪ ﻣﺤﺾ ﺑﺎرﮔﺬاري اﺟﺮا ﻫﻢ ﻣﯽ ﺷﻮﻧﺪ ﻣﻤﮑﻦ اﺳﺖ در اﯾﻦ ﺻﻮرت ﺗﻮاﺑﻌﯽ ﮐﻪ از ﻗﺒﻞ وﺟﻮد
ﻧﺪارﻧﺪ ﺻﺪا زده ﺷﻮﻧﺪ ﮐﻪ در اﯾﻦ ﺻﻮرت ﯾﮏ ﺧﻄﺎ رخ ﺧﻮاﻫﺪ داد .در ﻣﺜﺎل ﻗﺒﻞ ﺑﺎ ﻋﻮض ﮐﺮدن ﺟﺎي ﺗﮓ ﻫﺎي scriptﯾﮏ ﺧﻄﺎ رخ ﺧﻮاﻫﺪ
داد :
><html
><head
><title>Title of Page</title
></head
><body
>”<script language=”JavaScript
;)(sayHi
></script
><p>This is the first text the user will see.</p
>”<script language=”JavaScript
{ )(function sayHi
;)”alert(“Hi
}
></script
></body
></html
در ﺻﻮرت اﺟﺮاي ﮐﺪ ﻓﻮق ﯾﮏ ﺧﻄﺎ رخ ﺧﻮاﻫﺪ داد زﯾﺮا ﺗﺎﺑﻊ ﻗﺒﻞ از اﯾﻨﮑﻪ ﺗﻌﺮﯾﻒ ﺷﻮد ﺻﺪا زده ﺷﺪه اﺳﺖ .ﭼﻮن ﮐﺪ ﻫﺎ از ﺑﺎﻻ ﺑﻪ ﭘﺎﯾﯿﻦ
ﺑﺎرﮔﺬاري ﻣﯽ ﺷﻮﻧﺪ ﺗﺎﺑﻊ )( sayHiوﺟﻮد ﻧﺨﻮاﻫﺪ داﺷﺖ ﺗﺎ ﺗﮓ scriptدوم ﺗﻮﻟﯿﺪ ﻧﺸﺪه اﺳﺖ .
١١
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از اﯾﻦ ﻣﺸﮑﻞ ،ﻣﯽ ﺗﻮان اﺳﮑﺮﯾﭙﺖ ﻫﺎ را در داﺧﻞ ﺗﻮﺿﯿﺤﺎت HTMLﻗﺮار داد .ﺑﺎ اﯾﻦ ﮐﺎر ﻣﺮورﮔﺮ ﻫﺎي ﻗﺪﯾﻤﯽ آن را
ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ و ﻧﻤﺎﯾﺶ ﻧﺨﻮاﻫﻨﺪ داد .از ﻃﺮف دﯾﮕﺮ ﻣﺮورﮔﺮ ﻫﺎي ﺟﺪﺑﺪ ﻣﯽ داﻧﻨﺪ ﮐﻪ دﺳﺘﻮرات ﺗﻮﺿﯿﺤﯽ ﮐﻪ در ﺑﯿﻦ دﺳﺘﻮرات آﻏﺎزﯾﻦ و
ﭘﺎﯾﺎﻧﯽ > <scriptﻣﻨﻈﻮر ﺷﺪه اﻧﺪ ﺗﻨﻬﺎ ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن اﺳﮑﺮﯾﭙﺖ از دﯾﺪ ﻣﺮور ﮔﺮ ﻫﺎي ﻗﺪﯾﻤﯽ ﺗﺮ اﺳﺖ و ﻟﺬا ﺑﻪ ﺗﻔﺴﯿﺮ اﺳﮑﺮﯾﭙﺖ اداﻣﻪ
ﻣﯽ دﻫﻨﺪ .
ﻫﻤﺎن ﻃﻮر ﮐﻪ ﻣﯽ داﻧﯿﺪ ﺑﺮاي ﻧﻮﺷﺘﻦ ﯾﮏ ﺗﻮﺿﯿﺢ در ﺳﻨﺪ HTMLﮐﺎﻓﯽ اﺳﺖ ﻋﻼﻣﺖ <!--را در اﺑﺘﺪا و ﻋﻼﻣﺖ > --را در اﻧﺘﻬﺎي آن
ﻗﺮار دﻫﯿﺪ .
ﺑﻪ ﻣﺜﺎل زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ :
<script language=”JavaScript”><!-- hide from older browsers
{ )(function sayHi
;)”alert(“Hi
}
>//--
></script
ﺑﻪ دو slashي ﮐﻪ در اﻧﺘﻬﺎي دﺳﺘﻮر ﻓﻮق آﻣﺪه دﻗﺖ ﮐﻨﯿﺪ .اﯾﻦ دو اﺳﻠﺶ ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از اﯾﻦ ﮐﻪ ﻣﻔﺴﺮ
ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﻣﺮورﮔﺮ ﻫﺎي ﺳﺎزﮔﺎز ﺑﺎ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﻋﺒﺎرت > --را ﺑﻪ ﻋﻨﻮان ﯾﮏ دﺳﺘﻮر ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺗﻔﺴﯿﺮ ﻧﮑﻨﺪ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ .ﻋﺪم اﺳﺘﻔﺎده از اﯾﻦ دو //ﻣﻮﺟﺐ اﯾﺠﺎد ﯾﮏ ﺧﻄﺎ ﺧﻮاﻫﺪ ﺷﺪ .
ﺷﻤﺎ روش ﻣﺨﻔﯽ ﮐﺮدن اﺳﮑﺮﯾﭙﺖ ﻫﺎ از ﻣﺮورﮔﺮ ﻫﺎي ﻧﺎﺳﺎزﮔﺎر ﺑﺎ ﺟﺎوااﺳﮑﺮﯾﭙﺖ را ﻓﺮاﮔﺮﻓﺘﯿﺪ اﻣﺎ ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮان ﺑﺮاي ﮐﺎرﺑﺮاﻧﯽ ﮐﻪ از اﯾﻦ
ﻣﺮورﮔﺮ ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ ﻧﯿﺰ ﻣﻄﻠﺐ ﺟﺎﯾﮕﺰﯾﻨﯽ ﻧﻤﺎﯾﺶ داد ؟ ﺑﺮاي اﯾﻨﮑﺎر ﺑﺎﯾﺪ از ﺗﮕﯽ ﺑﻪ ﻧﺎم > <noscriptاﺳﺘﻔﺎده ﮐﻨﯿﻢ .ﻣﺮورﮔﺮ ﻫﺎي
ﺳﺎزﮔﺎر ﻫﺮ ﭼﯿﺰي را ﮐﻪ ﺑﯿﻦ دﺳﺘﻮرات آﻏﺎزﯾﻦ و ﭘﺎﯾﺎﻧﯽ > <noscriptﻗﺮار داﺷﺘﻪ ﺑﺎﺷﺪ ،ﻧﺎدﯾﺪه ﻣﯽ ﮔﯿﺮﻧﺪ .از ﻃﺮف دﯾﮕﺮ ﻣﺮورﮔﺮ ﻫﺎي
ﻗﺪﯾﻤﯽ اﯾﻦ دﺳﺘﻮر را ﻧﻤﯽ ﺷﻨﺎﺳﻨﺪ و ﺑﻨﺎﺑﺮاﯾﻦ آﻧﺮا ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ و ﺑﻪ ﺳﺮاغ دﺳﺘﻮرات ﺑﻌﺪي )ﮐﻪ ﺗﻮﺳﻂ اﯾﻦ دﺳﺘﻮر اﺣﺎﻃﻪ ﺷﺪه اﻧﺪ ( ﻣﯽ روﻧﺪ .
ﺑﻪ ﻣﺜﺎل زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ :
><html
><head
><title>Title of Page</title
>”<script language=”JavaScript
{ )(function sayHi
;)”alert(“Hi
}
></script
></head
><body
>”<script language=”JavaScript
;)(sayHi
></script
><noscript
<p>Your browser doesn’t support JavaScript. If it did support
>JavaScript, you would see this message: Hi!</p
></noscript
<p>This is the first text the user will see if JavaScript is enabled. If
>JavaScript is disabled this is the second text the user will see.</p
></body
></html
١٢
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﮐﺎر ﺑﺎ آراﯾﻪ ﻫﺎ در ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﯾﺠﺎد آراﯾﻪ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﮐﻼس Array
در ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﺮ ﺧﻼف ﺟﺎوا ) ، ( javaﮐﻼس درون ﺳﺎﺧﺘﯽ ﺑﻪ ﻧﺎم arrayوﺟﻮد دارد ﮐﻪ از آن ﺑﺮاي اﯾﺠﺎد آراﯾﻪ ﻫﺎ )ﮐﻪ اﻟﺒﺘﻪ ﺑﻪ ﻋﻨﻮان
ﯾﮏ ﺷﯽء در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﻧﺪ ( اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﺷﯽ ء از ﻧﻮع آراﯾﻪ از دﺳﺘﻮرات زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ :
راه دﯾﮕﺮ اﯾﺠﺎد ﯾﮏ آراﯾﻪ اﺳﺘﻔﺎده از ﺑﺮاﮐﺖ ﻫﺎ )] [(و ﻋﻼﻣﺖ ,ﺑﯿﻦ ﻫﺮ ﻋﻨﺼﺮ از آراﯾﻪ اﺳﺖ ﺑﻪ ﺻﻮرت زﯾﺮ :
;]”var aColors = [“red”, “green”, “blue
”alert(aColors.length); //outputs “3
;”aColors[25] = “purple
”alert(aColors.length); //outputs “26
ﺗﺒﺪﯾﻞ آراﯾﻪ ﺑﻪ رﺷﺘﻪ :
آراﯾﻪ ﻫﺎ از ﺳﻪ ﻣﺘﺪ ﺧﺎص ﺑﺮاي ﺧﺮوﺟﯽ ﻋﻨﺎﺻﺮ ﺧﻮد ﺑﻪ ﺻﻮرت رﺷﺘﻪ اي ﮐﻪ ﺑﺎ ﮐﺎﻣﺎ از ﻫﻢ ﺟﺪاﺷﺪه اﻧﺪ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﺪ :
;]”var aColors = [“red”, “green”, “blue
”alert(aColors.toString()); //outputs “red,green,blue
”alert(aColors.valueOf()); //outputs “red,green,blue
”alert(aColors.toLocaleString()); //outputs “red,green,blue
ﻣﯽ ﺑﯿﻨﯿﺪ ﮐﻪ ﺣﺎﺻﻞ اﺟﺮاي ﻫﺮ ﺳﻪ ﮐﺪ ﺑﺎﻻ ﺑﻪ ﺻﻮرت زﯾﺮ ﺧﻮاﻫﺪ ﺑﻮد .
١٣
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
از ﺗﺎﺑﻌﯽ ﺑﻪ ﻧﺎم )( joinﺑﺮاي اﻟﺤﺎق ﻋﻨﺎﺻﺮ ﯾﮏ آراﯾﻪ ﮐﻪ اﻟﺒﺘﻪ ﺑﻪ وﺳﯿﻠﻪ ﯾﮏ ﺟﺪاﮐﻨﻨﺪه ) (separatorاز ﻫﻢ ﺟﺪا ﺷﺪه اﻧﺪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.
اﯾﻦ ﺗﺎﺑﻊ ﯾﮏ آرﮔﻮﻣﺎن دارد ﮐﻪ در واﻗﻊ رﺷﺘﻪ اي اﺳﺖ ﮐﻪ ﺑﯿﻦ ﻫﺮ ﯾﮏ از ﻋﻨﺎﺻﺮ وﺟﻮد دارد .ﺑﻪ ﻣﺜﺎل ﻫﺎي زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ :
اﮔﺮ ﻫﯿﭻ ﺟﺪاﮐﻨﻨﺪه اي ﻣﺸﺨﺺ ﻧﺸﻮد ،اﯾﻦ ﺗﺎﺑﻊ آراﯾﻪ اي را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻫﺮ ﻋﻨﺼﺮ آن ﺷﺎﻣﻞ ﯾﮑﯽ از ﮐﺎراﮐﺘﺮﻫﺎي رﺷﺘﻪ ي ﻣﻮرد ﻧﻈﺮ
اﺳﺖ .ﺑﺮاي ﻣﺜﺎل :
;”var sColors = “green
;)”“(var aColors = sColors.split
”alert(aColors.toString()); //outputs “g,r,e,e,n
در ﺣﺎﻟﺖ ﮐﻠﯽ ) arr.slice(n,mﻋﻨﺎﺻﺮ از ﺧﺎﻧﻪ nﺗﺎ m-1را ﺑﺮﻣﯽ ﮔﺮداﻧﺪ .
١۴
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺗﺒﺪﯾﻞ آراﯾﻪ ﻫﺎ ﺑﻪ ﭘﺸﺘﻪ و ﺻﻒ :
ﯾﮑﯽ از ﺟﺬاﺑﺘﺮﯾﻦ وﯾﮋﮔﯽ ﻫﺎي آراﯾﻪ در ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﻣﮑﺎن ﺗﺒﺪﯾﻞ ﮐﺮدن آﻧﻬﺎ ﺑﻪ دﯾﮕﺮ ﺳﺎﺧﺘﻤﺎن داده ﻫﺎي راﯾﺞ ﻫﻤﭽﻮن stackو
queueاﺳﺖ .
اﮔﺮ آراﯾﻪ اي را ﺑﻪ ﻋﻨﻮان stackدر ﻧﻈﺮ ﺑﮕﯿﺮﯾﻢ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﻪ راﺣﺘﯽ ازﺗﻮاﺑﻊ )( pushو )( popﺑﺮاي اﺿﺎﻓﻪ و ﺣﺬف ﻋﻨﺎﺻﺮ از اﻧﺘﻬﺎي
آراﯾﻪ اﺳﺘﻔﺎده ﮐﻨﯿﻢ .
ﺗﺎﺑﻊ )( pushاﻣﮑﺎن اﺿﺎﻓﻪ ﮐﺮدن ﭼﻨﺪﺑﻦ ﻋﻨﺼﺮ ﺑﻪ آراﯾﻪ و ﺗﺎﺑﻊ )( popاﻣﮑﺎن ﺣﺬف آﺧﺮﯾﻦ ﻋﻨﺼﺮ آراﯾﻪ و ﺑﺮﮔﺮداﻧﺪن آن ﺑﻪ ﻋﻨﻮان ﻣﻘﺪار
ﺑﺎزﮔﺸﺘﯽ ﺗﺎﺑﻊ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ .اﻟﺒﺘﻪ ﺗﺎﺑﻊ )( popﻋﻨﺼﺮي را ﮐﻪ ﺑﺮﻣﯽ ﮔﺮداﻧﺪ از آراﯾﻪ ﺣﺬف ﻣﯽ ﮐﻨﺪ .ﺑﻪ ﻣﺜﺎل ﻫﺎي زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ :
ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺗﻮاﺑﻊ دﯾﮕﺮي ﺑﺮاي دﺳﺘﮑﺎري ﻋﻨﺎﺻﺮ اﺑﺘﺪاﯾﯽ آراﯾﻪ ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ .ﺗﺎﺑﻌﯽ ﺑﻪ ﻧﺎم )( shiftﺑﺮاي ﺣﺬف و ﺑﺮﮔﺮداﻧﺪن ﻋﻨﺼﺮ اول
آراﯾﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .از ﻃﺮف دﯾﮕﺮ ﺗﺎﺑﻌﯽ ﺑﻪ ﻧﺎم )( unshiftﯾﮏ ﻋﻨﺼﺮ را ﺑﻪ اﺑﺘﺪاي آراﯾﻪ اﺿﺎﻓﻪ ﮐﺮده و ﺑﻘﯿﻪ ﻋﻨﺎﺻﺮ را ﯾﮏ ﻣﻮﻗﻌﯿﺖ ﺑﻪ
ﺟﻠﻮ ﺟﺎﺑﺠﺎ ﻣﯽ ﮐﻨﺪ :
;]”var aColors = [“red”, “green”, “yellow
;)(var vItem = aColors.shift
”alert(aColors.toString()); //outputs “green,yellow
”alert(vItem); //outputs “red
;)”aColors.unshift(“black
”alert(aColors.toString()); //outputs “black,green,yellow
در ﺷﮑﻞ زﯾﺮ ﻧﺤﻮه ﻋﻤﻠﮑﺮد ﺗﻮاﺑﻊ ﻓﻮق ﺑﺮ روي ﯾﮏ آراﯾﻪ ﻋﺪدي ﻧﻤﺎﯾﺶ داده ﺷﺪه اﺳﺖ :
١۵
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
در ﺻﻮرﺗﯽ ﮐﻪ ﻋﻨﺎﺻﺮ آراﯾﻪ اﻋﺪاد ﺑﺎﺷﻨﺪ ﻧﺘﯿﺠﻪ ﮐﻤﯽ ﻋﺠﯿﺐ و ﻏﺮﯾﺐ اﺳﺖ :
]var aColors = [3, 32, 2, 5
;)(aColors.sort
”alert(aColors.toString()); //outputs “2,3,32,5
اﺷﯿﺎي از ﻧﻮع stringﺧﺎﺻﯿﺘﯽ ﺑﻪ ﻧﺎم lengthدارﻧﺪ ﮐﻪ ﺗﻌﺪاد ﮐﺎراﮐﺘﺮ ﻫﺎي رﺷﺘﻪ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .اﯾﻦ ﺷﯽء از ﭼﻨﺪﯾﻦ ﻣﺘﺪ ﻧﯿﺰ ﭘﺸﺘﯿﺒﺎﻧﯽ
ﻣﯽ ﮐﻨﺪ ﮐﻪ در اداﻣﻪ ﺷﺮح ﺧﻮاﻫﯿﻢ داد :
اﮔﺮ ﭼﻨﺎﻧﭽﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺑﻪ ﺟﺎي ﺧﻮد ﮐﺎراﮐﺘﺮ ﮐﺪ ﮐﺎراﮐﺘﺮي آن را ﺑﺪﺳﺖ آورﯾﺪ از ﻣﺘﺪ )( charCodeAtاﺳﺘﻔﺎده ﮐﻨﯿﺪ :
;)”var oStringObject = new String(“hello world
”alert(oStringObject.charCodeAt(1)); //outputs “101
اﯾﻦ دﺳﺘﻮر ﻣﻘﺪار 101ﮐﻪ ﻣﻌﺎدل ﮐﺪ ﮐﺎراﮐﺘﺮي ﺣﺮف eاﺳﺖ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
١۶
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﻟﺤﺎق دو رﺷﺘﻪ :
ﻣﺘﺪ دﯾﮕﺮ )( concatاﺳﺖ ﮐﻪ ﺑﺮاي اﻟﺤﺎق دو رﺷﺘﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﺮاي ﻣﺜﺎل :
;)“ var oStringObject = new String(“hello
;)”var sResult = oStringObject.concat(“world
”alert(sResult); //outputs “hello world
“ alert(oStringObject); //outputs “hello
ﺑﻪ ﺟﺎي اﺳﺘﻔﺎده از ﻣﺘﺪ )( concatﻣﯽ ﺗﻮان از ﻋﻤﻠﮕﺮ +ﻧﯿﺰ ﺑﺮاي اﻟﺤﺎق دو رﺷﺘﻪ اﺳﺘﻔﺎده ﮐﺮد .
در ﺻﻮرﺗﯽ ﮐﻪ ﺣﺮف Oدر ﻋﺒﺎرت ﺑﺎﻻ ﻓﻘﻂ ﯾﮑﺒﺎر ﺗﮑﺮار ﻣﯽ ﺷﺪ ﻫﺮ دو اﯾﻦ ﻣﺘﺪ ﻫﺎ ﻓﻘﻂ ﯾﮏ ﻣﻘﺪار راﺑﺮ ﻣﯽ ﮔﺮداﻧﻨﺪ .
١٧
اﺣﻤﺪ ﺑﺎدﭘﯽ: ﻧﻮﯾﺴﻨﺪه آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
var oStringObject = new String(“hello world”);
alert(oStringObject.slice(3)); //outputs “lo world”
alert(oStringObject.substring(3)); //outputs “lo world”
alert(oStringObject.slice(3, 7)); //outputs “lo w”
alert(oStringObject.substring(3,7)); //outputs “lo w”
ﺳﻮاﻟﯽ ﮐﻪ دراﯾﻨﺠﺎ ﭘﯿﺶ ﻣﯽ آﯾﺪ اﯾﻦ اﺳﺖ ﮐﻪ ﭼﺮا دﻗﯿﻘﺎ اﯾﻦ دو ﺗﺎﺑﻊ ﺑﮏ ﮐﺎر را اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ ؟ در ﺣﻘﯿﻘﺖ ﺗﻔﺎوت آن ﻫﺎ در ﮐﺎر ﺑﺎ آرﮔﻮﻣﺎن
. ﻫﺎي ﻣﻨﻔﯽ اﺳﺖ
در ﺣﺎﻟﯽ ﮐﻪ ﺑﺮاي. آرﮔﻮﻣﺎن ﻣﻨﻔﯽ ﺑﺎ ﻃﻮل رﺷﺘﻪ ﺟﻤﻊ ﺷﺪه و ﺣﺎﺻﻞ آن ﺑﻪ ﻋﻨﻮان آرﮔﻮﻣﺎن اﺻﻠﯽ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮدslice() ﺑﺮاي ﻣﺘﺪ
(. )درواﻗﻊ ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮﻧﺪ. ﻣﻘﺎدﯾﺮ ﻣﻨﻔﯽ ﺑﻪ ﻋﻨﻮان ﺻﻔﺮ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮدsustring() ﺗﺎﺑﻊ
: ﻣﺜﺎل ﻫﺎ
var oStringObject= new String(“hello world”);
alert(oStringObject.slice(-3)); //outputs “rld”
alert(oStringObject.substring(-3)); //outputs “hello world”
alert(oStringObject.slice(3, -4)); //outputs “lo w”
alert(oStringObject.substring(3,-4)); //outputs “hel”
: اﺳﺖ درواﻗﻊ دﺳﺘﻮر زﯾﺮ اﺟﺮا ﻣﯿﺸﻮد8 ﺟﻤﻊ ﻣﯽ ﺷﻮد ﮐﻪ ﺣﺎﺻﻞ-3 در ﺧﻂ دوم از ﮐﺪ ﺑﺎﻻ ﭼﻮن آرﮔﻮﻣﺎن ﻣﻨﻔﯽ اﺳﺖ ﻃﻮل رﺷﺘﻪ ﺑﺎ
oStringObject.slice(8);
: ﯾﻌﻨﯽ. اﻣﺎ در ﺧﻂ ﺳﻮم آرﮔﻮﻣﺎن ﻣﻨﻔﯽ ﺻﻔﺮ درﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد. ﮐﻪ از ﺧﺎﻧﻪ ﻫﺸﺘﻢ رﺷﺘﻪ ﺗﺎ اﻧﺘﻬﺎي آراﯾﻪ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ
oStringObject.substring(0);
: ﯾﻌﻨﯽ. ﺑﻪ ﻋﻨﻮان آرﮔﻮﻣﺎن دوم در ﻧﻈﺮﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد8 در ﺧﻂ ﭼﻬﺎرم آرﮔﻮﻣﺎن دوم ﺑﺎ ﻃﻮل رﺷﺘﻪ ﺟﻤﻊ ﺷﺪه و ﺣﺎﺻﻞ آن ﯾﻌﻨﯽ
oStringObject.slice(3,8);
: و در ﺧﻂ ﭘﻨﺠﻢ ﺣﺎﺻﻞ ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﺷﻮد
oStringObject.substring(3,0);
١٨
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﺷﯿﺎي دروﻧﯽ )ﭘﯿﺶ ﺳﺎﺧﺘﻪ( :
ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺷﺎﻣﻞ ﺗﻌﺪادي ﺷﯽ از ﭘﯿﺶ ﺳﺎﺧﺘﻪ اﺳﺖ ﮐﻪ ﻃﺮاﺣﺎن ﻣﯽ ﺗﻮاﻧﻨﺪ از آن ﻫﺎ در ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺧﻮد اﺳﺘﻔﺎده ﮐﻨﻨﺪ .در واﻗﻊ ﻣﺎ ﮐﻼس
ﻫﺎﯾﯽ ﺑﺮاي اﯾﻦ اﺷﯿﺎ ﻧﺪارﯾﻢ و ﻻزم ﻧﯿﺴﺖ ﺷﯽ اي از روي آن ﻫﺎ ﺳﺎﺧﺘﻪ ﺷﻮد .
ﺷﯽ : Math
ﯾﮑﯽ از اﺷﯿﺎي از ﭘﯿﺶ ﺳﺎﺧﺘﻪ ﺷﺪه ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﺳﺖ ﮐﻪ ﺑﺮاي اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت ﻋﺪدي و ﻋﻤﻠﯿﺎت ﻣﺮﺑﻮط ﺑﻪ رﯾﺎﺿﯿﺎت اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
اﯾﻦ ﺷﯽ ﺷﺎﻣﻞ ﯾﮑﺴﺮي ﺧﺎﺻﯿﺖ و ﻣﺘﺪ اﺳﺖ ﮐﻪ اﻧﺠﺎم ﻣﺤﺎﺳﺒﺎت را آﺳﺎن ﻣﯽ ﮐﻨﺪ .
اﯾﻦ ﺗﻮاﺑﻊ ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از ﻧﻮﺷﺘﻦ ﺑﺮﻧﺎﻣﻪ ﻫﺎي اﺿﺎﻓﯽ ﺑﺮاي ﭘﯿﺪاﮐﺮدن minو maxاﻋﺪاد ﻣﯽ ﺗﻮاﻧﺪ اﺳﺘﻔﺎده ﺷﻮد .
ﯾﮑﯽ از ﻣﺘﺪ ﻫﺎ abs() ،اﺳﺖ ﮐﻪ ﻗﺪر ﻣﻄﻠﻖ اﻋﺪاد ﮔﺮﻓﺘﻪ ﺷﺪه را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
ﮔﺮوﻫﯽ دﯾﮕﺮ از ﻣﺘﺪ ﻫﺎ ﮐﻪ ﺑﺮاي ﮔﺮد ﮐﺮدن اﻋﺪاد اﻋﺸﺎري ﺑﻪ ﺻﺤﯿﺢ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ .اﯾﻦ ﺗﻮاﺑﻊ ﺷﺎﻣﻞ )( ceilو )( floorو
)( roundﻫﺴﺘﻨﺪ .
ﺗﺎﺑﻊ )( : roundاﯾﻦ ﺗﺎﺑﻊ ﻋﺪد ﮔﺮﻓﺘﻪ ﺷﺪه را ﺑﻪ ﻋﺪد ﺻﺤﯿﺢ ﺑﺎﻻﺗﺮ ﮔﺮد ﻣﯽ ﮐﻨﺪ اﮔﺮ ﻗﺴﻤﺖ اﻋﺸﺎري ا زﻧﺼﻒ ﺑﯿﺸﺘﺮ ﯾﺎ ﻣﺴﺎوي
ﺑﺎﺷﺪ و در ﻏﯿﺮ اﯾﻦ ﺻﻮرت آن را ﺑﻪ ﻋﺪد ﺻﺤﯿﺢ ﭘﺎﯾﯿﻦ ﺗﺮ ﮔﺮد ﻣﯽ ﮐﻨﺪ .
ﺗﺎﺑﻊ )( : ceilاﯾﻦ ﺗﺎﺑﻊ ﺑﺪون در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﻗﺴﻤﺖ اﻋﺸﺎري آن را ﺑﻪ ﮐﻮﭼﮑﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ ﺑﻌﺪي ﮔﺮد ﻣﯽ ﮐﻨﺪ .
ﺗﺎﺑﻊ )( : floorاﯾﻦ ﺗﺎﺑﻊ ﺑﺪون در ﻧﻈﺮ ﮔﺮﻓﺘﻦ ﻗﺴﻤﺖ اﻋﺸﺎري آن را ﺑﻪ ﺑﺰرﮔﺘﺮﯾﻦ ﻋﺪد ﺻﺤﯿﺢ ﻗﺒﻠﯽ ﮔﺮد ﻣﯽ ﮐﻨﺪ .
ﺑﻪ ﻣﺜﺎل ﻫﺎي زﯾﺮ ﺗﻮﺟﻪ ﮐﻨﯿﺪ :
”alert(Math.ceil(25.5)); //outputs “26
”alert(Math.round(25.5)); //outputs “26
”alert(Math.floor(25.5)); //outputs “25
ﮔﺮوه دﯾﮕﺮي از ﻣﺘﺪ ﻫﺎ ﺑﺮاي ﮐﺎر ﺑﺎ ﻣﻘﺎدﯾﺮ ﺗﻮاﻧﯽ وﺟﻮد دارد :
)( : Logﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻟﮕﺎرﯾﺘﻢ ﻃﺒﯿﻌﯽ ﻋﺪد ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﻪ ﮐﺎر ﻣﯽ رود .
)( : Powﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﺗﻮان ﯾﮏ ﻋﺪد ﺑﻪ ﮐﺎر ﻣﯽ رود ﮐﻪ دو آرﮔﻮﻣﺎن ﻣﯽ ﮔﯿﺮد :
;)var iNum = Math.pow(2, 10
)( : sqrtﺟﺬر ﯾﮏ ﻋﺪد را ﺣﺴﺎب ﻣﯽ ﮐﻨﺪ:
;)var iNum = Math.sqrt(4
”alert(iNum); //outputs “2
١٩
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﯾﮑﯽ دﯾﮕﺮ از ﻣﺘﺪ ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺷﯽ ء Mathﮐﻪ ﮐﺎرﺑﺮد زﯾﺎدي ﻫﻢ دارد )( randomاﺳﺖ .ﮐﻪ ﺑﺮاي ﺗﻮﻟﯿﺪ اﻋﺪاد ﺗﺼﺎدﻓﯽ ﺑﯿﻦ 0و 1
)اﻟﺒﺘﻪ ﻧﻪ ﺧﻮد 0و (1ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .
اﻟﺒﺘﻪ ﺑﺮاي ﺗﻮﻟﯿﺪ اﻋﺪاد ﺗﺼﺎدﻓﯽ در ﯾﮏ ﻣﺤﺪوده ﺧﺎص از ﻓﺮﻣﻮل زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد :
ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﯾﺮاي اﯾﺠﺎد ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓﯽ ﺑﯿﻦ 1و 10ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣﯽ ﺷﻮد :
ﺑﻬﺘﺮﯾﻦ راه ﺑﺮاي اﯾﺠﺎد ﻣﻘﺎدﯾﺮ ﺗﺼﺎدﻓﯽ اﺳﺘﻔﺎده از ﯾﮏ ﺗﺎﺑﻊ اﺳﺖ ﮐﻪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﻮﺷﺘﻪ ﻣﯽ ﺷﻮد :
در اﯾﻨﺠﺎ آرﮔﻮﻣﺎن دوم ﺗﺎﺑﻊ ،ﻃﻮل آراﯾﻪ ﻣﻨﻬﺎي 1اﺳﺖ ﮐﻪ در واﻗﻊ ﻣﻮﻗﻌﯿﺖ آﺧﺮﯾﻦ ﻋﻨﺼﺮ ﻣﯽ ﺑﺎﺷﺪ .
ﻣﺘﺪ )( encodeURIﻣﻌﻤﻮﻻ ﺑﺮاي آدرس ﻫﺎي ﮐﺎﻣﻞ )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ( http://itcom.pnuab.ac.ir/illegal value.htm
ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد در ﺣﺎﻟﯽ ﮐﻪ دﯾﮕﺮي ﺑﺮاي ﻗﺴﻤﺘﯽ از آدرس ﻫﺎ ﻫﻤﭽﻮن illegal value.htmﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .
ﺗﻔﺎوت اﺻﻠﯽ ﺑﯿﻦ اﯾﻦ دو ﺗﺎﺑﻊ اﯾﻦ اﺳﺖ ﮐﻪ ﺗﺎﺑﻊ اول ﮐﺎراﮐﺘﺮ ﻫﺎي ﺧﺎﺻﯽ ﮐﻪ ﺑﻪ ﻋﻨﻮان ﺟﺰﺋﯽ از آدرس ﻫﺴﺘﻨﺪ ﻫﻤﭽﻮن ) ، / ، ( :؟ و ...را
encodeﻧﻤﯽ ﮐﻨﺪ درﺣﺎﻟﯽ ﮐﻪ ﺗﺎﺑﻊ دوم ﺗﻤﺎم ﮐﺎراﮐﺘﺮ ﻫﺎي ﻏﯿﺮ اﺳﺘﺎﻧﺪارد را encodeﺧﻮاﻫﺪ ﮐﺮد .ﺑﺮاي ﻣﺜﺎل :
http://www.wrox.com/illegal%20value.htm#start
https%3A%2F%2Ffanyv88.com%3A443%2Fhttp%2Fwww.wrox.com%2Fillegal%20value.htm%23start
٢٠
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﻃﺒﯿﻌﺘﺎ دو ﺗﺎﺑﻊ ﺑﺮاي decodeﮐﺮدن آدرس ﻫﺎي اﯾﻨﺘﺮﻧﺘﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﻫﻤﭽﻮن :
)( decodeURI
)( decodeURIComponent
ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل :
;”var sUri = “https%3A%2F%2Ffanyv88.com%3A443%2Fhttp%2Fwww.wrox.com%2Fillegal%20value.htm%23start
;))alert(decodeURI(sUri
;))alert(decodeURIComponent(sUri
ﺣﺎﺻﻞ اﺟﺮاي اﯾﻦ ﮐﺪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺧﻮاﻫﺪ ﺑﻮد :
https%3A%2F%2Ffanyv88.com%3A443%2Fhttp%2Fwww.wrox.com%2Fillegal value.htm%23start
http://www.wrox.com/illegal value.htm#start
آﺧﺮﯾﻦ ﺗﺎﺑﻌﯽ ﮐﻪ ﺑﻪ ﻧﻈﺮ ﻗﺪرﺗﻨﻤﻨﺪ ﻣﯽ آﯾﺪ )( evalاﺳﺖ .اﯾﻦ ﺗﺎﺑﻊ ﮐﻪ ﺷﺒﯿﻪ ﺑﻪ ﻣﻔﺴﺮ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﮐﺎر ﻣﯽ ﮐﻨﺪ آرﮔﻮﻣﺎﻧﯽ از ﻧﻮع رﺷﺘﻪ ﻣﯽ
ﮔﯿﺮد ﮐﻪ در واﻗﻊ ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﺑﻪ زﺑﺎن ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﺳﺖ و اﯾﻦ ﺗﺎﺑﻊ آن را ﻫﻤﺎﻧﻨﺪ ﺳﺎﯾﺮ ﺑﺮﻧﺎﻣﻪ ﻫﺎ اﺟﺮا ﻣﯽ ﮐﻨﺪ .ﺑﺮاي ﻣﺜﺎل :
;)”)’eval(“alert(‘hi
اﯾﻦ ﺗﮑﻪ ﮐﺪ در ﺣﻘﯿﻘﺖ ﻣﻌﺎدل دﺳﺘﻮر زﯾﺮ اﺳﺖ :
;)”alert(“hi
ﻣﻮﻗﻌﯽ ﮐﻪ ﻣﻔﺴﺮ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﻪ اﯾﻦ ﺗﺎﺑﻊ ﻣﯽ رﺳﺪ آرﮔﻮﻣﺎن آن را ﺑﻪ ﻋﻨﻮان ﯾﮏ دﺳﺘﻮر ﺧﯿﻠﯽ ﺳﺎده ﺗﻔﺴﯿﺮ ﮐﺮده و اﺟﺮا ﻣﯽ ﮐﻨﺪ .
اﯾﻦ ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از داﺧﻞ آرﮔﻮﻣﺎن ﻫﺎي اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺗﻤﺎم ﻣﺘﻐﯿﺮﻫﺎي ﺧﺎرج آن دﺳﺘﺮﺳﯽ داﺷﺘﻪ و از آن ﻫﺎ اﺳﺘﻔﺎده
ﮐﻨﯿﺪ :
;”var msg = “hello world
;)”)eval(“alert(msg
ﻫﻤﭽﻨﯿﻦ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ آرﮔﻮﻣﺎن ﺗﺎﺑﻊ )( evalرا ﯾﮏ ﺗﺎﺑﻊ ﺗﻌﺮﯾﻒ ﮐﺮده و ﺳﭙﺲ آن را ﺧﺎرج از ﺗﺎﯾﻊ )( evalﺻﺪا ﺑﺰﻧﯿﺪ .ﺑﺮاي ﻣﺜﺎل :
٢١
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﯾﻦ ﺷﯽء داراي ﻣﺘﺪ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ از آن ﻫﺎ ﺑﺮاي ﺑﺪﺳﺖ آوردن ﺟﺰﺋﯿﺎت ﺑﯿﺸﺘﺮي از ﺗﺎرﯾﺦ و زﻣﺎن اﺳﺘﻔﺎده ﻧﻤﻮد .ﺑﻌﻀﯽ از اﯾﻦ ﻣﺘﺪ ﻫﺎ و
ﺧﻮاص را در ﺟﺪول زﯾﺮ ﻣﺸﺎﻫﺪه ﻣﯽ ﮐﻨﯿﺪ :
ﺗﻮﺿﯿﺤﺎت ﻧﺎم ﻣﺘﺪ
روزي از ﻣﺎه را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﻣﻘﺪاري از 1ﺗﺎ 31ﺑﺎﺷﺪ . )(getDate
ﻣﺎﻫﯽ از ﺳﺎل را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﻘﺪاري از 0ﺗﺎ 11ﻣﯽ ﺑﺎﺷﺪ )(getMonth
ﺳﺎل را در ﻗﺎﻟﺐ 4ﻋﺪد ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ )(getFullYear
ﺳﺎﻋﺘﯽ از روز را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﻣﻘﺪاري از 0ﺗﺎ 23ﺑﺎﺷﺪ )(getHours
دﻗﯿﻘﻪ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﻘﺪاري از 0ﺗﺎ 59اﺳﺖ . )(getMinutes
ﺛﺎﻧﯿﻪ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﻘﺪاري از 0ﺗﺎ 59اﺳﺖ )(getSeconds
روزي از ﻫﻔﺘﻪ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﻣﻘﺪاري از 0ﺗﺎ 6ﺑﺎﺷﺪ .
)(getDate
) 6ﺑﻪ ﻣﻌﻨﯽ (sunday
ﺗﻌﺪاد ﻣﯿﻠﯽ ﺛﺎﻧﯿﻪ ﻫﺎي ﮔﺬﺷﺘﻪ از ﺗﺎرﯾﺦ 1/1/1970را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ )(getTime
ﺗﻌﺪاد ﻣﯿﻠﯽ ﺛﺎﻧﯿﻪ ﻫﺎي ﮔﺬﺷﺘﻪ از ﺗﺎرﯾﺦ 1/1/1970را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ )(valueOf
رﺷﺘﻪ اي ﺣﺎوي اﻃﻼﻋﺎﺗﯽ ﻫﻤﭽﻮن ﻣﺨﻔﻒ ﻧﺎم روز ﺟﺎري ،ﻣﺎه ﺟﺎري و
)(toString
...را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ.
ﻋﻼوه ﺑﺮ ﻣﺘﺪ ﻫﺎي ﻓﻮق ،ﺷﯽ ء Dateاز ﻣﺘﺪي ﺑﻪ ﻧﺎم )( getTimezoneOffsetﮐﻪ اﺧﺘﻼف ﺑﯿﻦ زﻣﺎن ﻣﺤﻠﯽ و زﻣﺎن واﺣﺪ ﺟﻬﺎﻧﯽ
راﺑﺮ ﺣﺴﺐ دﻗﯿﻘﻪ ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﻧﯿﺰ ﭘﺸﺘﯿﺎﻧﯽ ﻣﯽ ﮐﻨﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل اﯾﻦ ﻣﺘﺪ ﻣﻘﺪار ٢١٠را ﺑﺮاي وﻗﺖ ﻣﺤﻠﯽ اﯾﺮان ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ) .ﮐﻪ
ﻫﻤﺎن اﺧﺘﻼف ٣:٣٠دﻗﯿﻘﻪ اي ﺳﺎﻋﺖ ﺗﻬﺮان ﻧﺴﺒﺖ ﺑﻪ زﻣﺎن واﺣﺪ ﺟﻬﺎﻧﯽ اﺳﺖ ( .
٢٢
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺷﯽء : window
ﺷﯽ ء Windowﺗﻤﺎﻣﯽ ﭘﻨﺠﺮه ﻫﺎي ﻣﺮورﮔﺮ را ﺷﺎﻣﻞ ﻣﯽ ﺷﻮد اﻣﺎ ﻧﻪ ﻟﺰوﻣﺂ ﻣﺤﺘﻮاﯾﯽ ﮐﻪ در آن ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد.
از اﯾﻦ ﺷﯽء ﺑﺮاي ﺟﺎﺑﺠﺎﯾﯽ ،ﺗﻐﯿﯿﺮ اﻧﺪازه و دﯾﮕﺮ اﺛﺮات ﺑﺮ روي ﭘﻨﺠﺮه ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ.
ﻣﺜﺎل ﻫﺎ :
)window.moveBy(10, 20
//ﭘﻨﺠﺮه را ﻧﺴﺒﺖ ﺑﻪ ﻣﮑﺎن ﻓﻌﻠﯽ 10pxﭘﯿﮑﺴﻞ ﺑﻪ ﺳﻤﺖ راﺳﺖ و 20pxﺑﻪ ﺳﻤﺖ ﭘﺎﯾﯿﻦ ﺟﺎﺑﺠﺎ ﻣﯽ ﮐﻨﺪ .
)window.resizeTo(150, 300
ﻋﺮض ﭘﻨﺠﺮه را ﺑﻪ 150pxو ارﺗﻔﺎع آن را ﺑﻪ 300pxﺗﻐﯿﯿﺮ ﻣﯽ دﻫﺪ .
)window.resizeBy(150, 0
ﻓﻘﻂ 150pxﺑﻪ ﻋﺮض ﮐﻨﻮﻧﯽ ﭘﻨﺠﺮه اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ .
)window.moveTo(0, 0
ﭘﻨﺠﺮه را ﺑﻪ ﮔﻮﺷﻪ ﺑﺎﻻ و ﺳﻤﺖ ﭼﭗ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﻫﺪاﯾﺖ ﻣﯽ ﮐﻨﺪ .
در رﺷﺘﻪ اي از ﺧﺼﻮﺻﯿﺎت ﻧﺒﺎﯾﺪ ﻫﯿﭻ ﻓﻀﺎي ﺧﺎﻟﯽ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ.
ﻣﺘﺪ Openﺷﯽء اي از ﻧﻮع Windowرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﮐﻪ ﺗﻤﺎم ﻣﺘﺪ ﻫﺎ و ﺧﺎﺻﯿﺖ ﻫﺎﯾﯽ ﮐﻪ ﺷﯽء Windowدارد را داراﺳﺖ.
ﺑﺮاي ﺑﺴﺘﻦ ﭘﻨﺠﺮه از ﻣﺘﺪ )( closeاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .اﯾﻦ ﻣﺘﺪ ﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﺪ ﭘﻨﺠﺮه اي ﮐﻪ ﺗﻮﺳﻂ ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﺑﺎز ﺷﺪه اﺳﺖ را ﻣﺴﺘﻘﯿﻤﺎ
ﺑﺒﻨﺪد ﻧﻪ ﭘﻨﺠﺮه ي اﺻﻠﯽ.
: confirm() اﯾﻦ ﺗﺎﺑﻊ ﻫﻢ ﻣﺎﻧﻨﺪ ﺗﺎﺑﻊ ﺑﺎﻻﺳﺖ .ﺗﻨﻬﺎ ﺗﻔﺎوت اﯾﻦ دو وﺟﻮد ﯾﮏ دﮐﻤﻪ Cancelدر ﭘﻨﺠﺮه ي ﺑﺎز ﺷﻮﻧﺪه اﺳﺖ .
٢۴
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
در ﺻﻮرﺗﯽ ﮐﻪ ﮐﺎرﺑﺮ دﮐﻤﻪ Okرا ﺑﺰﻧﺪ ﻣﻘﺪار Trueو در ﺻﻮرت زدن دﮐﻤﻪ ي Cancelﻣﻘﺪار Falseرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
: prompt() ﭘﻨﺠﺮه ي اﯾﻦ ﻣﺘﺪ ﭼﻬﺎر ﻗﺴﻤﺖ دارد .دﮐﻤﻪ ي , Okدﮐﻤﻪ ي , Cancelﯾﮏ ﻣﺘﻦ و ﯾﮏ text fieldﺑﺮاي
وارد ﮐﺮدن ﯾﮏ رﺷﺘﻪ ﺗﻮﺳﻂ ﮐﺎرﺑﺮ .
اﯾﻦ ﻣﺘﺪ دو آرﮔﻮﻣﺎن ﻣﯽ ﮔﯿﺮد :
.1ﻋﻨﻮان ﺳﻮال ﯾﺎ ﻣﺘﻨﯽ ﮐﻪ ﺑﻪ ﮐﺎرﺑﺮ ﻧﺸﺎن داده ﻣﯽ ﺷﻮد .
.2ﻣﻘﺪار ﭘﯿﺶ ﻓﺮض ﺑﺮاي Text field
در ﺻﻮرﺗﯽ ﮐﻪ ﮐﺎرﺑﺮ دﮐﻤﻪ ي Okرا ﺑﺰﻧﺪ ﺗﺎﺑﻊ ﻣﻘﺪار وارد ﺷﺪه در Text fieldرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ و در ﺻﻮرت زدن دﮐﻤﻪ ي Cancel
ﻣﻘﺪار Nullرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ.
ﺧﺎﺻﯿﺖ : statusbar
اﯾﻦ ﻗﺴﻤﺖ ﭘﻨﺠﺮه ﻓﺮآﯾﻨﺪ ﺑﺎرﮔﺰاري و ﭘﺎﯾﺎن ﺑﺎرﮔﺰاري را ﺑﻪ ﮐﺎرﺑﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ .ﻫﺮ ﭼﻨﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﻢ از دو ﺧﺎﺻﯿﺖ ﺑﻪ ﻧﺎم ﻫﺎي statusو
defaultStatusﺑﺮاي ﺗﻐﯿﯿﺮ آن اﺳﺘﻔﺎده ﮐﻨﯿﻢ.
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﺣﺪس زدﯾﺪ از ﺧﺎﺻﯿﺖ Statusﺑﺮاي ﺗﻐﯿﯿﺮ ﻣﺘﻦ Statusbarﺑﺮاي ﭼﻨﺪ ﻟﺤﻈﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد در ﺣﺎﻟﯽ ﮐﻪ از
defaultstatusﺑﺮاي ﺗﻐﯿﯿﺮ Statusbarﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﮐﺎرﺑﺮ در ﺻﻔﺤﻪ ﻫﺴﺖ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
ﺑﺮاي ﺗﻐﯿﯿﺮ ﻟﺤﻈﻪ اي ﻧﻮار وﺿﻌﯿﺖ ﻣﺜﻶ وﻗﺘﯽ ﮐﺎرﺑﺮ ،ﻣﺎوس را روي ﯾﮏ ﻟﯿﻨﮏ ﻗﺮار ﻣﯽ دﻫﺪ ﻣﯽ ﺗﻮان از ﮐﺪ زﯾﺮ اﺳﺘﻔﺎده ﻧﻤﻮد :
٢۵
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﺟﺮاي ﻣﮑﺮر ﮐﺪ ﻫﺎ از ﻃﺮﯾﻖ ﻣﺘﺪﻫﺎي Timeoutsو : Intervals
از اﯾﻦ دو ﺗﺎﺑﻊ ﺑﺮاي اﺟﺮاي ﯾﮏ ﺗﮑﻪ ﮐﺪ ﺑﻌﺪ از ﺑﺎزه زﻣﺎﻧﯽ ﺧﺎﺻﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
: setTimeoutsﮐﺪ ﮔﺮﻓﺘﻪ ﺷﺪه را ﭘﺲ از ﻋﺪدي ﺑﺮ ﺣﺴﺐ ﻣﯿﻠﯽ ﺛﺎﻧﯿﻪ اﺟﺮا ﻣﯽ ﮐﻨﺪ .در ﺣﺎﻟﯽ ﮐﻪ Intervalsﮐﺪ o
ﮔﺮﻓﺘﻪ ﺷﺪه را ﻣﮑﺮرآ ﺑﻌﺪ از ﻣﺪﺗﯽ ﺑﺮ ﺣﺴﺐ ﻣﯿﻠﯽ ﺛﺎﻧﯿﻪ ﭼﻨﺪﯾﻦ ﺑﺎر ﺗﮑﺮار ﻣﯽ ﮐﻨﺪ .اﯾﻦ ﻣﺘﺪ دو آرﮔﻮﻣﺎن ﻣﯽ ﮔﯿﺮد :
ﮐﺪي ﮐﻪ ﺑﺎﯾﺪ اﺟﺮا ﺷﻮد . .1
ﻣﺪت زﻣﺎﻧﯽ ﮐﻪ ﺑﺎﯾﺪ ﺑﻌﺪ از آن ﮐﺪ اﺟﺮا ﺷﻮد . .2
آرﮔﻮﻣﺎن اوﻟﯽ ﻫﻢ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﯾﮏ رﺷﺘﻪ از ﮐﺪﻫﺎ و ﻫﻢ ﻧﺎم ﯾﮏ ﺗﺎﺑﻊ ﺑﺎﺷﺪ .ﻫﺮ ﺳﻪ ﮐﺪ زﯾﺮ ﺑﻌﺪ از ﯾﮏ ﺛﺎﻧﯿﻪ ﯾﮏ ﭘﻨﺠﺮه ﻫﺸﺪار را
ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﻨﺪ :
> "<scritp type="text/javascript
;)setTimeout("alert('Hello world!')", 1000
></script
----------------------------------------------------------
----------------------------------------------------------
{ )(function sayHelloWorld
;)"!alert("Hello world
}
;)setTimout(sayHelloWorld, 1000
></script
ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از اﺟﺮاي ﺗﺎﺑﻊ )( setTimeoutاز ﻣﺘﺪ )( ClearTimeoutﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد :
> "<scritp type="text/javascript
;)var iTimeoutId = setTimeout("alert('Hello world!')", 1000
;)clearTimeout(iTimeoutId
></script
: setIntervals oﻣﺎﻧﻨﺪ ﺗﺎﺑﻊ ﻗﺒﻠﯽ اﺳﺖ ﺟﺰ اﯾﻨﮑﻪ ﮐﺪ ﮔﺮﻓﺘﻪ ﺷﺪه را ﺑﻌﺪ از ﮔﺬﺷﺖ ﺑﺎزه ي زﻣﺎﻧﯽ ﻣﺸﺨﺺ ﺗﮑﺮار ﻣﯽ ﮐﻨﺪ .ﺑﺮاي
ﺟﻠﻮﮔﯿﺮي از اﺟﺮاي اﯾﻦ ﻣﺘﺪ ,از ﺗﺎﺑﻌﯽ ﺑﻪ ﻧﺎم ClearIntervalاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد :
٢۶
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺷﯽ ء : history
ﻣﻤﮑﻦ اﺳﺖ ﺑﺨﻮاﻫﯿﻢ ﺑﻪ ﺗﺎرﯾﺨﭽﻪ ي ﻣﺮورﮔﺮ دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ,اﻟﺒﺘﻪ ﻫﯿﭻ راﻫﯽ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ آدرس ﺻﻔﺤﺎت ﮐﻪ در History
وﺟﻮد دارﻧﺪ ,ﻧﯿﺴﺖ .ﺑﺮاي اﯾﻦ ﮐﺎر از ﻣﺘﺪﻫﺎ و ﺧﺎﺻﯿﺖ ﻫﺎي ﺷﯽء Historyﻣﺮﺑﻮط ﺑﻪ ﺷﯽء Windowاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ :
ﻣﺘﺪ )( Goﻓﻘﻂ ﯾﮏ ﭘﺎراﻣﺘﺮ ﻣﯽ ﮔﯿﺮد :ﺗﻌﺪاد ﺻﻔﺤﺎﺗﯽ ﮐﻪ ﺑﺎﯾﺪ ﺑﻪ ﺟﻠﻮ ﯾﺎ ﺑﻪ ﻋﻘﺐ ﭘﯿﻤﺎﯾﺶ ﺷﻮﻧﺪ .اﮔﺮ ﻋﺪد ﻣﻨﻔﯽ ﺑﺎﺷﺪ ﺑﻪ ﺻﻔﺤﺎت ﻗﺒﻞ و اﮔﺮ
ﻋﺪد ﻣﺜﺒﺖ ﺑﺎﺷﺪ ﺑﻪ ﺻﻔﺨﺎت ﺟﻠﻮ ﻣﯽ روﯾﻢ .ﺑﺮاي ﻣﺜﺎل ﺟﻬﺖ رﻓﺘﻦ ﺑﻪ ﯾﮏ ﺻﻔﺤﻪ ﻋﻘﺐ از ﮐﺪ زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ :
;)window.history.go(-1
و ﺑﺮاي رﻓﺘﻦ ﺑﻪ ﺟﻠﻮ :
;)window.history.go(+1
ﻫﻤﯿﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﻣﺘﺪ ﻫﺎي )( backو )( forwardﺑﻪ ﺟﺎي ﮐﺪﻫﺎي ﺑﺎﻻ اﺳﺘﻔﺎده ﮐﻨﯿﻢ.
ﺷﯽء : Document
اﯾﻦ ﺷﯽء ﮐﻪ ﺗﻨﻬﺎ ﺷﯽء ﻣﺸﺘﺮك ﺑﯿﻦ ﻣﺪل ﻫﺎي ﺷﯽءﮔﺮاي BOMو DOMاﺳﺖ .و ﻧﯿﺰ داراي ﺧﺼﻮﺻﯿﺎﺗﯽ اﺳﺖ.
ﯾﮑﯽ از ﺧﺎﺻﯿﺖ ﻫﺎي اﯾﻦ ﺷﯽء URLاﺳﺖ ﮐﻪ ﺑﺮاي ﺗﻨﻈﯿﻢ و دﺳﺘﺮﺳﯽ ﺑﻪ آدرس ﮐﻨﻮﻧﯽ ﺻﻔﺤﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
;"document.URL = "http://www.tavoosebehesht.ir/
ﻫﻤﭽﻨﯿﻦ اﯾﻦ ﺷﯽء داراي ﯾﮑﺴﺮي ﺧﺼﻮﺻﯿﺎت ﻣﺠﻤﻮﻋﻪ اي ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ اﻧﻮاع ﻋﻨﺎﺻﺮ داﺧﻞ ﺻﻔﺤﻪ ي ﺑﺎرﮔﺰاري ﺷﺪه اﺳﺖ.
ﺑﺮﺧﯽ از ﺧﺎﺻﯿﺖ ﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ :
ﺗﻮﺿﯿﺤﺎت ﻣﺠﻤﻮﻋﻪ
دﺳﺘﺮﺳﯽ ﺑﻪ ﻟﯿﻨﮏ ﻫﺎي ﺻﻔﺤﻪ anchors
دﺳﺘﺮﺳﯽ ﺑﻪ ﺗﻤﺎﻣﯽ ﻋﻨﺎﺻﺮ embedﺻﻔﺤﻪ embeds
دﺳﺘﺮﺳﯽ ﺑﻪ ﺗﻤﺎﻣﯽ ﻓﺮم ﻫﺎي ﺻﻔﺤﻪ forms
دﺳﺘﺮﺳﯽ ﺑﻪ ﺗﻤﺎﻣﯽ ﻋﻨﺎﺻﺮ ﻋﮑﺲ ﺻﻔﺤﻪ images
دﺳﺘﺮﺳﯽ ﺑﻪ ﺗﻤﺎﻣﯽ ﻟﯿﻨﮏ ﻫﺎي ﺻﻔﺤﻪ links
٢٧
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﻫﺮ ﻣﺠﻤﻮﻋﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻮﺳﯿﻠﻪ ي ﻋﺪد ﯾﺎ ﻧﺎم index ،ﮔﺬاري ﺷﻮﻧﺪ .ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﻪ اوﻟﯿﻦ ﻋﻨﺼﺮ ﻋﮑﺲ
ﺻﻔﺤﻪ دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﯿﺪ :
;]Document.images[0
Or
; ]'Document.images['image-name
ﺑﺎ اﯾﻦ روش ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﻪ آدرس آن ﻫﺎ ﻫﻢ دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ,ﺑﻪ ﺻﻮرت زﯾﺮ :
document.images[0].src
از دﯾﮕﺮ ﻣﺘﺪﻫﺎي اﯾﻦ ﺷﯽء ﻣﯽ ﺗﻮان ﺑﻪ )( Writeو )( Writelnﺑﺮاي ﭼﺎپ ﯾﮏ ﻣﺘﻦ اﺷﺎره ﮐﺮد .
ﺷﯽء : location
ﯾﮑﯽ دﯾﮕﺮ از ﺷﯽء ﻫﺎ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ آدرس ﺻﻔﺤﻪ ﺟﺎري location ،اﺳﺖ .ﻣﺎ ﺗﻮﺳﻂ ﺧﺎﺻﯿﺖ location.hrefﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺮاي
ﺗﻨﻈﯿﻢ ﯾﺎ ﺑﺪﺳﺖ آوردن URLاﺳﺘﻔﺎده ﮐﻨﯿﻢ :
;"document.href= "http://www.tavoosebehesht.ir/
از ﻣﺘﺪ )( reloadﺑﺮاي ﺑﺎرﮔﺰاري ﻣﺠﺪد ﺻﻔﺤﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺗﻌﯿﯿﻦ ﮐﻨﯿﻢ ﮐﻪ ﺑﺎرﮔﺰاري ﻣﺠﺪد از روي Cacheﯾﺎ
Serverﺑﺎﺷﺪ .اﯾﻦ ﮐﺎر ﺑﺎ ﯾﮑﯽ از آرﮔﻮﻣﺎن falseﺑﺮاي ﺑﺎرﮔﺰاري ﻣﺠﺪد از Catchو trueﺑﺮاي ﺑﺎرﮔﺰاري ﻣﺠﺪد از Serverاﺳﺘﻔﺎده
ﻣﯽ ﺷﻮد.
ﺷﯽء : Navigator
اﯾﻦ ﺷﯽء ﯾﮑﯽ از اﺷﯿﺎي ﻗﺪﯾﻤﯽ ﻣﺪل ﺷﯽءﮔﺮاي BOMاﺳﺖ.
از اﯾﻦ ﺷﯽء ﺑﺮاي دﺳﺘﺮﺳﯽ و ﺑﺪﺳﺖ آوردن اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﻧﻮع و ﻧﺴﺨﻪ ﻣﺮورﮔﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .ﺑﻌﻀﯽ از ﺧﺎﺻﯿﺖ ﻫﺎي آن ﺑﻪ ﺷﺮح
زﯾﺮ اﺳﺖ :
ﺗﻮﺿﯿﺤﺎت ﺧﺎﺻﯿﺖ ﻫﺎ
رﺷﺘﻪ اي ﺣﺎوي ﮐﺪ رﺷﺘﻪ اي ﻣﺮورﮔﺮ appcodeName
ﻧﺎم ﻋﻤﻮﻣﯽ ﻣﺮورﮔﺮ appName
اﻃﻼﻋﺎت اﺿﺎﻓﯽ ﻣﺮورﮔﺮ appMinotVersion
ﻧﺴﺨﻪ ﻣﺮورﮔﺮ appVersion
ﻧﻮع زﺑﺎن ﻣﺮورﮔﺮ ﯾﺎ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ browserLanguage
ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﻣﯿﮑﻨﺪ آﯾﺎ ﮐﻮﮐﯽ ﻫﺎ ﻓﻌﺎل ﻫﺴﺘﻨﺪ ﯾﺎ ﺧﯿﺮ cookieEnabled
ﮐﻼس cpuرا ﻣﺸﺨﺺ ﻣﯿﮑﻨﺪ cpuClass
ﻓﻌﺎل ﺑﻮدن ﺟﺎوا javaEnabled
زﺑﺎن ﻣﺮورﮔﺮ را ﻣﺸﺨﺺ ﻣﯿﮑﻨﺪ Language
آراﯾﻪ اي از mimetypeﻫﺎي ﺛﺒﺖ ﺷﺪه در ﻣﺮورﮔﺮ mimeType
ﻧﻮع platformي ﮐﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ ﮐﺎرﺑﺮ ﺑﺮ روي آن ﻗﺮار دارد را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ . Platform
٢٨
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺷﯽ ء : screen
از اﯾﻦ ﺷﯽ ء ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ اﻃﻼﻋﺎت ﻣﺮﺑﻮﻃﻪ ﺑﻪ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﮐﺎرﺑﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .اﯾﻦ ﺷﯽ ء ﺷﺎﻣﻞ ﺧﻮاص زﯾﺮ اﺳﺖ :
ﺗﻮﺿﯿﺤﺎت ﺧﺎﺻﯿﺖ
ارﺗﻔﺎع ﻗﺎﺑﻞ دﺳﺘﺮس از وﯾﻨﺪوز availHeight
ﻋﺮض ﻗﺎﺑﻞ دﺳﺘﺮس از وﯾﻨﺪوز availWidth
ﺗﻌﺪاد ﺑﯿﺖ ﻫﺎ ﺑﺮاي ﻧﻤﺎﯾﺶ رﻧﮓ ﻫﺎ colorDepth
ارﺗﻔﺎع ﺻﻔﺤﻪ height
ﻋﺮض ﺻﻔﺤﻪ width
از دو ﺧﺎﺻﯿﺖ اول ﻣﯽ ﺗﻮان ﺑﺮاي ﺑﺪﺳﺖ آوردن ﺳﺎﯾﺰ ﺟﺪﯾﺪ ﭘﻨﺠﺮه اﺳﺘﻔﺎده ﻧﻤﻮد .ﺑﻪ ﻃﻮر ﻣﺜﺎل ﺑﺮاي fullscreenﮐﺮدن ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ
ﻣﯽ ﺗﻮان از ﮐﺪ زﯾﺮ اﺳﺘﻔﺎده ﻧﻤﻮد :
;)Window.MoveTo(0,0
;)Window.resizeTo(screen.availWidth,screen.availHegiht
٢٩
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ ﺑﯿﻨﯿﺪ ﻣﯽ ﺗﻮان ﻫﺮ ﯾﮏ از ﻋﻨﺎﺻﺮ ﻣﻮﺟﻮد در ﺻﻔﺤﻪ را در ﻗﺎﻟﺐ ﯾﮏ ) nodeﮔﺮه( ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد .اﻣﺎ ﻫﻤﯿﺸﻪ در
DOMﮔﺮﻫﯽ وﯾﮋه ﺑﻪ ﻧﺎم documentوﺟﻮد دارد ﮐﻪ در ﺑﺎﻻﺗﺮﯾﻦ ﺳﻄﺢ درﺧﺖ ﻗﺮار ﮔﺮﻓﺘﻪ و ﺳﺎﯾﺮ ﮔﺮه ﻫﺎ را ﺷﺎﻣﻞ ﻣﯽ ﺷﻮد .ﺑﺎ اﯾﻦ
ﻓﺮض درﺧﺖ ﻓﻮق ﺑﻪ ﺷﮑﻞ زﯾﺮ ﺗﺒﺪﯾﻞ ﺧﻮاﻫﺪ ﺷﺪ :
در درﺧﺖ ﺑﺎﻻ ﻫﺮ ﻣﺴﺘﻄﯿﻞ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮔﺮه ) (nodeﻣﺤﺴﻮب ﻣﯽ ﺷﻮد .ﮔﺮه ﻫﺎ اﻧﻮاع ﻣﺨﺘﻠﻔﯽ دارﻧﺪ ﮐﻪ ﺑﻌﻀﯽ از آن ﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮ
اﺳﺖ :
: Documentﺑﺎﻻﺗﺮﯾﻦ ﮔﺮﻫﯽ ﮐﻪ ﻫﻤﻪ ﮔﺮه ﻫﺎي دﯾﮕﺮ ﺑﻪ آن ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ )ﻓﺮزﻧﺪ آن ﻫﺴﺘﻨﺪ (.ﺑﻪ اﯾﻦ ﻧﻮع ﮔﺮه document ،
) Nodeﮔﺮه ﺳﻨﺪ( ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد .
: Elementﮔﺮﻫﯽ ﮐﻪ ﺷﺎﻣﻞ ﯾﮏ ﻋﻨﺼﺮ از ﺻﻔﺤﻪ ﺑﺎﺷﺪ .اﯾﻦ ﮔﺮه ﺷﺎﻣﻞ ﯾﮏ ﺗﮓ آﻏﺎزي و ﯾﮏ ﺗﮓ ﭘﺎﯾﺎﻧﯽ ﻣﺎﻧﻨﺪ > <tag></tagﯾﺎ
> <tag /اﺳﺖ .اﯾﻦ ﻧﻮع ﮔﺮه ﺗﻨﻬﺎ ﻧﻮﻋﯽ اﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺷﺎﻣﻞ ﻓﺮزﻧﺪان از اﻧﻮاع دﯾﮕﺮ ﺑﺎﺷﺪ .ﺑﻪ اﯾﻦ ﮔﺮه ﻫﺎ ) element Node ،ﮔﺮه
ﻋﻨﺼﺮي( ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد .
: Textاﯾﻦ ﻧﻮع ﮔﺮه ﻫﺎ ﺑﻪ ﻣﺘﻦ داﺧﻞ ﯾﮏ ﺗﮓ آﻏﺎزي و ﺗﮓ ﭘﺎﯾﺎﻧﯽ اﺷﺎره دارﻧﺪ .اﯾﻦ ﻧﻮع ﮔﺮه ﻫﺎ ﻫﻢ ﻧﻤﯽ ﺗﻮاﻧﻨﺪ ﻓﺮزﻧﺪ داﺷﺘﻪ ﺑﺎﺷﻨﺪ .ﺑﻪ
اﯾﻦ ﻧﻮع ﮔﺮه ﻫﺎ ) text Node ،ﮔﺮه ﻣﺘﻨﯽ ﻣﯽ ﮔﻮﯾﻨﺪ . (.اﮔﺮ ﮔﺮه ﻫﺎي ﻣﺘﻨﯽ را ﻫﻢ ﺑﻪ ﻣﺜﺎﻟﯽ ﮐﻪ ﺑﺮرﺳﯽ ﮐﺮدﯾﻢ اﺿﺎﻓﻪ ﮐﻨﯿﻢ درﺧﺖ ﻣﺎ ﺑﻪ
ﺷﮑﻞ زﯾﺮ ﺗﺒﺪﯾﻞ ﺧﻮاﻫﺪ ﺷﺪ :
٣٠
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
: Attrﮔﺮﻫﯽ ﮐﻪ ﺑﻪ ﯾﮏ ﺻﻔﺖ از ﯾﮏ ﻋﻨﺼﺮ اﺷﺎره ﻣﯽ ﮐﻨﺪ و ﻓﺎﻗﺪ ﻓﺮزﻧﺪ ﻣﯽ ﺑﺎﺷﺪ .ﺑﻪ اﯾﻦ ﻧﻮع ﮔﺮه ﻫﺎ ) attribute Node ،ﮔﺮه
ﺻﻔﺘﯽ( ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد .در درﺧﺖ DOMﻣﻌﻤﻮﻻ اﯾﻦ ﮔﺮه ﻫﺎ را ﺑﻪ ﺻﻮرت داﯾﺮه اي و ﻣﺘﺼﻞ ﺑﻪ ﮔﺮه ﻫﺎي ﻋﻨﺼﺮي ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﻨﺪ .ﺑﻪ
ﻋﻨﻮان ﻣﺜﺎل ﻫﺮ ﯾﮏ از ﻋﻨﺎﺻﺮ ﻟﯿﻨﮑﯽ ﮐﻪ در ﻣﺜﺎل ﺑﺎﻻ ﻣﺸﺎﻫﺪه ﻣﯽ ﺷﻮد داراي ﺻﻔﺖ ﻫﺎي hrefو relﻫﺴﺘﻨﺪ ﮐﻪ ﻣﯽ ﺗﻮان آن ﻫﺎ را ﺑﻪ
ﺻﻮرت زﯾﺮ ﻧﻤﺎﯾﺶ داد :
: Commentﺑﻪ ﮔﺮه ﻫﺎي ﺗﻮﺿﯿﺤﯽ اﺷﺎره ﻣﯽ ﮐﻨﺪ و ﻓﺎﻗﺪ ﻓﺮزﻧﺪ اﺳﺖ ) .در واﻗﻊ ﺑﻪ ﺗﮓ commentﺻﻔﺤﻪ اﺷﺎره ﻣﯽ ﮐﻨﺪ (.
ﻏﺎﻟﺒﺎ ﮔﺮﻫﯽ اﺻﻠﯽ ﺑﻪ ﻋﻨﻮان راس اﯾﻦ درﺧﺖ وﺟﻮد دارد ﮐﻪ ﻫﻤﺎن documentاﺳﺖ .
ﮔﺮه ﻫﺎ از ﻧﻈﺮ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺷﯽ ء در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﯽ ﺷﻮد ﮐﻪ اﯾﻦ اﺷﯿﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺧﺎﺻﯿﺖ ﻫﺎ و ﻣﺘﺪ ﻫﺎﯾﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪ .
ﺑﻌﻀﯽ از آن ﻫﺎ ﺑﻪ ﺷﺮح زﯾﺮ ﻫﺴﺘﻨﺪ :
ﺗﻮﺿﯿﺤﺎت ﻧﻮع /ﻧﻮع ﺑﺎزﮔﺸﺘﯽ ﺧﺎﺻﯿﺖ /ﻣﺘﺪ
ﻧﺎم ﮔﺮه را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .اﯾﻦ ﺧﺎﺻﯿﺖ ﺑﺴﺘﮕﯽ ﺑﻪ ﻧﻮع ﮔﺮه دارد . String nodeName
ﻣﻘﺪار ﮔﺮه را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .اﯾﻦ ﺧﺎﺻﯿﺖ ﺑﺴﺘﮕﯽ ﺑﻪ ﻧﻮع ﮔﺮه دارد . String nodeValue
٣١
اﺣﻤﺪ ﺑﺎدﭘﯽ: ﻧﻮﯾﺴﻨﺪه آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
: DOM اﺳﺘﻔﺎده از
: دﺳﺘﺮﺳﯽ ﺑﻪ ﮔﺮه ﻫﺎ
: ﺗﮑﻪ ﮐﺪ زﯾﺮ را در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ
<html>
<head>
<title>DOM Example</title>
</head>
<body>
<p>Hello World!</p>
<p>Isn’t this exciting?</p>
<p>You’re learning to use the DOM!</p>
</body>
</html>
اﺳﺖdocument ﮐﻪ ﯾﮑﯽ از ﺧﺎﺻﯿﺖ ﻫﺎي ﺷﯽ ءdocumentElement ﻣﯽ ﺗﻮان ازHTML اوﻻ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻋﻨﺼﺮ
: ﺑﻪ ﺻﻮرت زﯾﺮ. اﺳﺘﻔﺎده ﮐﻨﯿﻢ
var oHtml = document.documentElement ;
: ﺑﻪ ﺻﻮرت زﯾﺮ دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢbody وhead ﺣﺎل ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﻣﺘﻐﯿﺮ ﺑﻪ ﻋﻨﺎﺻﺮ
: ﺑﺮاي دﺳﺘﺮﺳﯽ ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﻨﯿﻢitem() ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﻣﺘﺪي ﻣﻮﺳﻮم ﺑﻪ
var oHead = oHtml.childNodes.item(0);
var oBody = oHtml.childNodes.item(1);
: را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن دﻫﯿﻢoHtml وoBody ، oHead ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺻﺤﺖ راﺑﻄﻪ ﻫﺎي ﺳﻪ ﻣﺘﻐﯿﺮ
٣٢
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
دﺳﺘﺮﺳﯽ ﺑﻪ ﺻﻔﺎت ﻋﻨﺎﺻﺮ:
DOMﺑﺮاي دﺳﺘﺮﺳﯽ و دﺳﺘﮑﺎري ﺻﻔﺎت ﯾﮏ ﻋﻨﺼﺮ ﺳﻪ ﻣﺘﺪ ﺗﻌﺮﯾﻒ ﮐﺮده اﺳﺖ :
اﯾﻦ ﻣﺘﺪ ﻫﺎ ﺑﺮاي دﺳﺘﺮﺳﯽ و دﺳﺘﮑﺎري ﻣﺴﺘﻘﯿﻢ ﺻﻔﺖ ﻫﺎي ﯾﮏ ﻋﻨﺼﺮ ﺑﺴﯿﺎر ﻣﻨﺎﺳﺐ اﻧﺪ .ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮاي ﺑﻪ دﺳﺖ آوردن ﻣﻘﺪار ﺻﻔﺖ ID
ﺗﮕﯽ ﻣﺸﺨﺺ ﻣﯽ ﺗﻮان ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻧﻤﻮد :
;)”var sId = oP.getAttribute(“id
و ﺑﺮاي ﺗﻐﯿﯿﺮ ﻣﻘﺪار ﺻﻔﺖ Idﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﻣﯽ ﮐﻨﯿﻢ :
;)”oP.setAttribute(“id”, “newId
)(: getElementsByTagName
از اﯾﻦ ﻣﺘﺪ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻟﯿﺴﺘﯽ از ﻋﻨﺎﺻﺮ ﺧﺎص اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
;)”var oImgs = document.getElementsByTagName(“img
ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از دﺳﺘﻮر زﯾﺮ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﺗﻤﺎم ﻋﻨﺎﺻﺮ ﺻﻔﺤﻪ اﺳﺘﻔﺎده ﮐﻨﯿﻢ :
)(: getElementsByName
DOMﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻋﻨﺎﺻﺮي ﮐﻪ ﺻﻔﺖ nameآﻧﻬﺎ ﺑﺮاﺑﺮ ﺑﺎ ﻣﻘﺪاري ﺧﺎص اﺳﺖ از اﯾﻦ ﻣﺘﺪ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ .ﺑﻪ ﻣﺜﺎل زﯾﺮ ﺗﻮﺟﻪ
ﮐﻨﯿﺪ :
٣٣
اﺣﻤﺪ ﺑﺎدﭘﯽ: ﻧﻮﯾﺴﻨﺪه آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
<html>
<head>
<title>DOM Example</title>
</head>
<body>
<form method=”post” action=”dosomething.php”>
<fieldset>
<legend>What color do you like?</legend>
<input type=”radio” name=”radColor” value=”red” /> Red<br />
<input type=”radio” name=”radColor” value=”green” /> Green<br />
<input type=”radio” name=”radColor” value=”blue” /> Blue<br />
</fieldset>
<input type=”submit” value=”Submit” />
</form>
</body>
</html>
اﻣﺎ ﻣﺎ ﻣﯽ ﺧﻮاﻫﯿﻢ ﻓﻘﻂ ﻣﻘﺪار. ﻫﺎ اﺳﻢ ﯾﮑﺴﺎﻧﯽ دارﻧﺪradiobutton . اﯾﻦ ﺻﻔﺤﻪ رﻧﮓ ﻣﻮرد ﻋﻼﻗﻪ ﮐﺎرﺑﺮ را ﺳﻮال ﻣﯽ ﮐﻨﺪ
. ﻣﯽ ﺗﻮان از ﮐﺪ زﯾﺮ اﺳﺘﻔﺎده ﻧﻤﻮدradiobutton ﺑﺮاي اﯾﺠﺎد ارﺟﺎﻋﯽ ﺑﻪ ﻋﻨﺎﺻﺮ. ي ﮐﻪ اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ را ﭘﯿﺪا ﮐﻨﯿﻢradiobutton
: getElementById()
ﺑﺎﯾﺪ ﯾﮑﺘﺎ ﺑﺎﺷﺪ ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪid ﻣﯽ داﻧﯿﻢ ﮐﻪ ﺧﺎﺻﯿﺖ. آﻧﻬﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮدid از اﯾﻦ ﻣﺘﺪ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻋﻨﺎﺻﺮ ﺑﻪ وﺳﯿﻠﻪ ﺧﺎﺻﯿﺖ
اﯾﻦ ﺳﺮﯾﻌﺘﺮﯾﻦ و راﯾﺠﺘﺮﯾﻦ راه ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻋﻨﺼﺮي ﺧﺎص از. ﯾﮑﺴﺎﻧﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪid ﻫﯿﭻ دو ﻋﻨﺼﺮي ﻧﻤﯽ ﺗﻮاﻧﻨﺪ داﺧﻞ ﯾﮏ ﺻﻔﺤﻪ
: ﺑﻪ ﮐﺪ زﯾﺮ ﻧﮕﺎه ﮐﻨﯿﺪ. ﺻﻔﺤﻪ اﺳﺖ
<html>
<head>
<title>DOM Example</title>
</head>
<body>
<p>Hello World!</p>
<div id=”div1”>This is my first layer</div>
</body>
</html>
ﺑﺨﻮاﻫﯿﻢ اﺳﺘﻔﺎده ﮐﻨﯿﻢdiv1 اﯾﻦ ﺻﻔﺤﻪ ﺑﺎ ﺷﻨﺎﺳﻪdiv ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻋﻨﺼﺮgetElementsByTagName() اﮔﺮ ﻣﺎ از ﻣﺘﺪ
: ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﮐﻨﯿﻢ
var oDivs = document.getElementsByTagName(“div”);
var oDiv1 = null;
for (var i=0; i < oDivs.length; i++){
if (oDivs[i].getAttribute(“id”) == “div1”) {
oDiv1 = oDivs[i];
break;
}
}
: اﻧﺠﺎم دﻫﯿﻢgetElementById() اﻣﺎ ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﻫﻤﯿﻦ ﮐﺎر را ﺑﻪ ﺻﻮرت زﯾﺮ و ﺑﺎ اﺳﺘﻔﺎده از ﻣﺘﺪ
var oDiv1 = document.getElementById(“div1”);
. ﮐﻮﺗﺎه ﺗﺮ و ﺑﻬﯿﻨﻪ ﺗﺮ اﺳﺖ، ﻣﯽ ﺑﯿﻨﯿﺪ ﮐﻪ اﺳﺘﻔﺎده از ﺣﺎﻟﺖ دوم ﺑﺴﯿﺎر ﺳﺎده ﺗﺮ
٣۴
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﯾﺠﺎد و دﺳﺘﮑﺎري ﮔﺮه ﻫﺎ :
ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از DOMﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ،ﺣﺬف ﮐﺮدن و ﺟﺎﺑﻪ ﺟﺎ ﮐﺮدن و دﯾﮕﺮ دﺳﺘﮑﺎري ﻫﺎ اﺳﺘﻔﺎده ﮐﻨﯿﻢ .
ﺣﺎل ﺑﺎﯾﺪ ﻣﺘﻦ را ﺑﻪ ﻋﻨﺼﺮ append ، pﮐﻨﯿﻢ .ﺑﺮاي اﯾﻦ ﮐﺎر از ﻣﺘﺪ )( appendchildاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ .از اﯾﻦ ﻣﺘﺪ ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن
ﯾﮏ ﻓﺮزﻧﺪ ﺑﻪ اﻧﺘﻬﺎي ﻟﯿﺴﺖ ﻓﺮزﻧﺪان ﯾﮏ ﮔﺮه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
;)oP.appendChild(oText
ﭘﺎراﮔﺮاﻓﯽ ﮐﻪ را ﻣﺎ اﯾﺠﺎد ﮐﺮده اﯾﻢ ﺑﺎﯾﺪ ﺑﻪ ﺻﻔﺤﻪ و ﻗﺴﻤﺖ bodyو ﯾﺎ ﯾﮑﯽ از زﯾﺮ ﻣﺠﻤﻮﻋﻪ ﻫﺎي آن appendﮐﻨﯿﻢ .ﺑﺮاي اﯾﻦ ﮐﺎر :
;)oP.appendChild(oText
ﺑﺮاي ﺟﺎﺑﺠﺎﯾﯽ ﮔﺮه ﻫﺎ از ﻣﺘﺪ )( replaceChildاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .از اﯾﻦ ﺗﺎﺑﻊ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد :
٣۵
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
;)”var oNewP = document.createElement(“p
;)“ !var oText = document.createTextNode(“Hello Universe
;)oNewP.appendChild(oText
;]var oOldP = document.body.getElementsByTagName(“p”)[0
;)oOldP.parentNode.replaceChild(oNewP, oOldP
ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﻋﻨﺼﺮ ﺑﻪ ﻗﺒﻞ از ﻋﻨﺼﺮ دﯾﮕﺮي از )( insertBeforeاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .اﯾﻦ ﻣﺘﺪ دو آرﮔﻮﻣﺎن ﻣﯽ ﭘﺬﯾﺮد و آرﮔﻮﻣﺎن
اول را ﻗﺒﻞ از آرﮔﻮﻣﺎن دوم ﻗﺮار ﻣﯽ دﻫﺪ .
)(createDocumentFragment
ﺑﻪ ﻣﺤﺾ اﯾﻨﮑﻪ ﻣﺎ ﺗﻌﺪادي ﮔﺮه ﺟﺪﯾﺪ ﺑﻪ ﺳﻨﺪ اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ ﺻﻔﺤﻪ ﺑﺮاي ﻧﻤﺎﯾﺶ ﺗﻐﯿﯿﺮات update ،ﻣﯿﺸﻮد .اﯾﻦ رﻓﺘﺎر ﺑﺮاي ﺗﻌﺪاد
ﺗﻐﯿﯿﺮات ﮐﻢ ﻣﻨﺎﺳﺐ اﺳﺖ .اﻣﺎ ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺗﻐﯿﯿﺮات زﯾﺎد ﺑﺎﺷﺪ و ﺻﻔﺤﻪ ﺑﺨﻮاﻫﺪ اﯾﻦ رﻓﺘﺎر را ﯾﮏ ﺑﻪ ﯾﮏ در ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ دﻫﺪ ﻣﻤﮑﻦ اﺳﺖ
اﯾﻦ ﻋﻤﻞ ﺑﻪ ﮐﻨﺪي اﻧﺠﺎم ﺷﻮد .
ﺑﺮاي رﻓﻊ اﯾﻦ ﻣﺸﮑﻞ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﯾﮏ ﺗﮑﻪ ) (documentFragmentﺑﺮﻧﺎﻣﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ .ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺗﻤﺎم ﮔﺮه ﻫﺎي ﺟﺪﯾﺪ را ﺑﻪ
ﺗﮑﻪ ﺑﺮﻧﺎﻣﻪ اﺿﺎﻓﻪ ﮐﺮده و ﺳﭙﺲ آن را در ﺻﻔﺤﻪ اﺻﻠﯽ ﻗﺮار دﻫﯿﺪ .ﻓﺮض ﮐﻨﯿﺪ ﻣﯽ ﺧﻮاﻫﯿﻢ ﭼﻨﺪﯾﻦ ﭘﺎراﮔﺮاف را در ﺻﻔﺤﻪ اﯾﺠﺎد ﮐﻨﯿﻢ .در
ﺻﻮرت اﺳﺘﻔﺎده از روش ﻫﺎي ﻗﺒﻠﯽ اﯾﻦ اﻣﺮ ﻣﻮﺟﺐ رﻓﺮش ﻫﺮ ﺑﺎره ﺻﻔﺤﻪ ﺧﻮاﻫﺪ ﺷﺪ .
اﻣﺎ ﺑﻬﺘﺮ اﺳﺖ ﺑﻪ روش زﯾﺮ ﻋﻤﻞ ﮐﻨﯿﻢ :
;]”var arrText = [“first”, “second”, “third”, “fourth”, “fifth”, “sixth
;)(var oFragment = document.createDocumentFragment
{ )for (var i=0; i < arrText.length; i++
;)”var oP = document.createElement(“p
;)]var oText = document.createTextNode(arrText[i
;)oP.appendChild(oText
;)oFragment.appendChild(oP
}
;)document.body.appendChild(oFragment
ﺑﺮاي دﺳﺘﺮﺳﯽ و ﺗﻨﻈﯿﻢ srcو borderﻣﯽ ﺗﻮاﻧﯿﻢ از ﻣﺘﺪ ﻫﺎي )( getAttributeو ﯾﺎ )( setAttributeاﺳﺘﻔﺎده ﮐﻨﯿﻢ :
;))”alert(oImg.getAttribute(“src
;))”alert(oImg.getAttribute(“border
;)”oImg.setAttribute(“src”, “mypicture2.jpg
;)”oImg.setAttribute(“border”, “1
ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﻧﺎم ﺻﻔﺎت ﻫﻢ ﺑﻪ ﻋﻨﻮان ﺧﺎﺻﯿﺖ ﻫﺮ ﯾﮏ از اﺷﯿﺎ ﺑﺮاي getو setﮐﺮدن اﺳﺘﻔﺎده ﮐﻨﯿﻢ :
;)alert(oImg.src
;)alert(oImg.border
;”oImg.src = “mypicture2.jpg
;”oImg.border = “1
٣۶
اﺣﻤﺪ ﺑﺎدﭘﯽ: ﻧﻮﯾﺴﻨﺪه آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺧﺎﺻﯿﺖclass ﻣﺎ ﻧﻤﯽ ﺗﻮاﻧﯿﻢ از ﺧﻮد ﺻﻔﺖ، ﺑﺮ ﺧﻼف ﺑﺴﯿﺎري از ﺻﻔﺎت ﺗﮓ ﻫﺎ: ﻧﮑﺘﻪ
اﺳﺘﻔﺎدهclassName ﭼﻮن اﯾﻦ ﮐﻠﻤﻪ ﺟﺰء ﮐﻠﻤﺎت رزرو ﺷﺪه اﺳﺖ و ﺑﺎﯾﺪ ﺑﻪ ﺟﺎي آن از ﮐﻠﻤﻪ. اﺳﺘﻔﺎده ﮐﻨﯿﻢ
. ﮐﻨﯿﻢ
٣٧
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺑﺮاي آﺳﺎﻧﯽ اﯾﻨﮑﺎر DOMﯾﮑﺴﺮي ﺧﺎﺻﯿﺖ ﻫﺎ و ﻣﺘﺪ ﻫﺎي ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮدي ﺑﺮاي ﻋﻨﺎﺻﺮ اﺻﻠﯽ ﺟﺪاول ﻫﻤﭽﻮن table, tody, tr
اﯾﺠﺎد ﮐﺮده اﺳﺖ .
ﻣﺘﺪ ﻫﺎ و ﺧﺎﺻﯿﺖ ﻫﺎي ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد ﺟﺪول ﺑﻪ ﺷﺮح زﯾﺮ ﻣﯽ ﺑﺎﺷﺪ :
٣٨
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺑﺮاي اﯾﺠﺎد ﺟﺪول ﻗﺒﻠﯽ ﮐﺪ ﻣﺎ ﺑﻪ ﺻﻮرت زﯾﺮ ﺧﻮاﻫﺪ ﺑﻮد :
//create the table
;)”var oTable = document.createElement(“table
;)”oTable.setAttribute(“border”, “1
;)”oTable.setAttribute(“width”, “100%
//create the tbody
;)”var oTBody = document.createElement(“tbody
;)oTable.appendChild(oTBody
//create the first row
;)oTBody.insertRow(0
;)oTBody.rows[0].insertCell(0
oTBody.rows[0].cells[0].appendChild(document.createTextNode(“Cell
;))”1,1
;)oTBody.rows[0].insertCell(1
oTBody.rows[0].cells[1].appendChild(document.createTextNode(“Cell
;))”2,1
//create the second row
;)oTBody.insertRow(1
;)oTBody.rows[1].insertCell(0
oTBody.rows[1].cells[0].appendChild(document.createTextNode(“Cell
;))”1,2
;)oTBody.rows[1].insertCell(1
oTBody.rows[1].cells[1].appendChild(document.createTextNode(“Cell
;))”2,2
//add the table to the document body
;)document.body.appendChild(oTable
ﮐﺪ ﺑﺎﻻ ﻣﺘﻐﯿﺮي ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺑﻪ ﻋﻨﺼﺮي ﺑﺎ ﻧﺎم )ﯾﺎ textbox1 (Idاز ﻓﺮﻣﯽ ﺑﻪ ﻧﺎم oFormاﺷﺎره ﻣﯽ ﮐﻨﺪ .
اﮔﺮ اﺳﻢ ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ داراي ﭼﻨﺪ spaceﺑﺎﺷﺪ ﺑﺎﯾﺪ در اﻃﺮاف آن از ﺑﺮاﮐﺖ )][( اﺳﺘﻔﺎده ﮐﻨﯿﻢ :
"var oTextbox1 = oForm.textbox1; //get the field with the name "textbox1
ﺧﺎﺻﯿﺖ : disabledاز اﯾﻦ ﺧﺎﺻﯿﺖ ﻫﻢ ﺑﺮاي ﺗﺸﺨﯿﺺ اﯾﻨﮑﻪ ﮐﺪام ﻋﻨﺼﺮ در ﺣﺎﻟﺖ ﻏﯿﺮ ﻓﻌﺎل ﻗﺮار دارد و ﻫﻢ ﺑﺮاي ﻓﻌﺎل ﯾﺎ ﻏﯿﺮ ﻓﻌﺎل
ﮐﺮدن ﯾﮏ ﻋﻨﺼﺮ از ﻗﺒﻞ ﻓﻌﺎل اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
ﺧﺎﺻﯿﺖ : formاﺷﺎره ﺑﻪ ﻓﺮﻣﯽ دارد ﮐﻪ ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﻣﺎ ،داﺧﻞ آن ﻗﺮار دارد .
۴٠
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﻣﺘﺪ )( : focusاﯾﻦ ﻣﺘﺪ ﻣﻮﺟﺐ ﻣﯽ ﺷﻮد ) focusﺗﻤﺮﮐﺰ( ﺻﻔﺤﻪ ﺑﺮ روي ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﻗﺮار ﮔﯿﺮد .
ﻣﺘﺪ )( : blurاﯾﻦ ﻣﺘﺪ ﻋﮑﺲ ﻣﺘﺪ ﺑﺎﻻ اﺳﺖ و ﻣﻮﺟﺐ ﻣﯽ ﺷﻮد ) focusﺗﻤﺮﮐﺰ( ﺻﻔﺤﻪ از روي ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﺑﺮود .
روﯾﺪاد : blurاﯾﻦ روﯾﺪاد ﻣﻮﻗﻌﯽ ﮐﻪ ) focusﺗﻤﺮﮐﺰ( ﺻﻔﺤﻪ از روي ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﺑﺮود رخ ﻣﯽ دﻫﺪ .
روﯾﺪاد : focusﻋﮑﺲ روﯾﺪاد ﺑﺎﻻ ﻋﻤﻞ ﻣﯽ ﮐﻨﺪ و ﻣﻮﻗﻌﯽ ﮐﻪ ) focusﺗﻤﺮﮐﺰ( ﺑﺮ روي ﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﻗﺮار ﺑﮕﯿﺮد رخ ﻣﯽ دﻫﺪ .
ﺑﺮاي ﻣﺜﺎل :
ﻧﮑﺘﻪ :ﻋﻨﺎﺻﺮ از ﻧﻮع hiddenﻓﻘﻂ از ﺧﺎﺻﯿﺖ formﮐﻪ در ﺑﺎﻻ ذﮐﺮ ﺷﺪ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﺪ .
اﮔﺮ ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﯿﺪ ﮐﻪ از ﻫﯿﭻ ﯾﮏ از راه ﻫﺎي ﻓﻮق اﺳﺘﻔﺎده ﻧﮑﻨﯿﺪ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﻣﺘﺪي ﺑﻪ ﻧﺎم )( submitاﺳﺘﻔﺎده ﮐﻨﯿﺪ .
اﯾﻦ ﻣﺘﺪ ﺟﺰﺋﯽ از ﺗﻌﺮﯾﻔﺎت DOMﺑﺮاي ﯾﮏ ﻋﻨﺼﺮ formاﺳﺖ و ﻣﯽ ﺗﻮاﻧﺪ ﻫﺮ ﺟﺎﯾﯽ از ﺻﻔﺤﻪ اﺳﺘﻔﺎده ﺷﻮد .ﺑﺮاي اﯾﻦ ﮐﺎر اوﻻ ﺑﺎﯾﺪ
ارﺟﺎﻋﯽ ﺑﻪ ﻓﺮم ﻣﻮرد ﻧﻈﺮ اﯾﺠﺎد ﮐﺮد )ﻃﺒﻖ روش ﻫﺎﯾﯽ ﮐﻪ ﻗﺒﻼ ذﮐﺮ ﺷﺪ( :
;)"oForm = document.getElementById("form1
;]"oForm = document.forms["form1
;]oForm = document.forms[0
ﺑﻌﺪ از اﯾﻦ ﮐﺎر ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ راﺣﺘﯽ از اﯾﻦ ﻣﺘﺪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ :
;)(oForm.submit
۴١
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
راه ﺣﻞ اﯾﻦ ﻣﺸﮑﻞ ﺑﺴﯿﺎر ﺳﺎده اﺳﺖ :ﺑﻌﺪ از اﯾﻨﮑﻪ ﮐﺎرﺑﺮ دﮐﻤﻪ را ﮐﻠﯿﮏ ﮐﺮد ،ﻣﺎ آن را ﻏﯿﺮ ﻓﻌﺎل ) (disabledﻣﯽ ﮐﻨﯿﻢ .
ﺑﺮاي اﻧﺠﺎم اﯾﻨﮑﺎر ﻣﯽ ﺗﻮان ﺑﻪ ﺟﺎي اﺳﺘﻔﺎده از دﮐﻤﻪ submitﻣﻌﻤﻮﻟﯽ زﯾﺮ :
><input type="submit" value="Submit" /
از ﮐﺪ زﯾﺮ اﺳﺘﻔﺎده ﮐﺮد :
;<input type=”button” value=”Submit” onclick=”this.disabled=true
>this.form.submit()” /
ﻣﻮﻗﻌﯽ ﮐﻪ اﯾﻦ دﮐﻤﻪ ﮐﻠﯿﮏ ﻣﯽ ﺷﻮد اوﻻ ﺧﻮد دﮐﻤﻪ ﻏﯿﺮ ﻓﻌﺎل ﻣﯽ ﺷﻮد و ﺳﭙﺲ ﻓﺮﻣﯽ را ﮐﻪ ﺟﺰﺋﯽ از آن اﺳﺖ را ارﺳﺎل ﻣﯽ ﮐﻨﺪ .ﺗﻮﺟﻪ
ﮐﻨﯿﺪ ﮐﻪ دراﯾﻨﺠﺎ ﮐﻠﻤﻪ ﮐﻠﯿﺪي thisﺑﻪ دﮐﻤﻪ اﺷﺎره دارد و formﺑﻪ ﻓﺮم درﺑﺮﮔﯿﺮﻧﺪه دﮐﻤﻪ اﺷﺎره ﻣﯽ ﮐﻨﺪ .
ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﯾﮏ ﻓﺮم را ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﻮﺳﯿﻠﻪ ﻣﺘﺪ )( submitارﺳﺎل ﮐﻨﯿﻢ ﻣﯽ ﺗﻮاﻧﯿﻢ آن را ﺑﻪ وﺳﯿﻠﻪ ﻣﺘﺪي ﺑﻪ ﻧﺎم )( resetﻧﯿﺰ ) resetﭘﺎك
ﺳﺎزي( ﮐﻨﯿﻢ :
><input type=”button” value=”Reset” onclick=”document.forms[0].reset()” /
ﺑﺮاي درﺳﺖ ﮐﺮدن ﯾﮏ textboxﯾﮏ ﺧﻄﯽ ﻣﯽ ﺑﺎﯾﺴﺖ ﺻﻔﺖ typeﻋﻨﺼﺮ inputرا ﺑﺮاﺑﺮ textﻗﺮار دﻫﯿﻢ .ﺻﻔﺖ sizeﻃﻮل
textboxرا ﺑﺮ ﺣﺴﺐ ﺗﻌﺪاد ﮐﺎراﮐﺘﺮﻫﺎ ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .ﻣﻘﺪار ﺻﻔﺖ valueﻣﻘﺪار ﭘﯿﺶ ﻓﺮض ﻣﻮﺟﻮد داﺧﻞ textboxرا ﻣﺸﺨﺺ
ﻣﯽ ﮐﻨﺪ .ﺻﻔﺖ maxlengthﺣﺪاﮐﺜﺮ ﺗﻌﺪاد ﮐﺎراﮐﺘﺮ ﻫﺎﯾﯽ ﮐﻪ ﺑﺘﻮان در textboxرا وارد ﮐﺮد را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .
ﻋﻨﺼﺮ textareaﺑﺮاي اﯾﺠﺎد ﻓﯿﻠﺪ ﻫﺎي ﭼﻨﺪ ﺧﻄﯽ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد .از ﺻﻔﺖ ﻫﺎي rowsو colsﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﻃﻮل
و ﻋﺮض textareaاﺳﺘﻔﺎده ﻣﯽ ﺷﻮد .
><textarea rows="25" cols="5">initial value</textarea
ﺑﺮ ﺧﻼف inputاﯾﻦ ﻋﻨﺼﺮ اﻣﮑﺎن ﻣﺸﺨﺺ ﮐﺮدن ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد ﮐﺎراﮐﺘﺮ ﻫﺎي ورودي را ﻧﺪارد .
ﭼﻮن ﻣﻘﺪاري ﮐﻪ ﺧﺎﺻﯿﺖ valueﺑﺮﻣﯽ ﮔﺮداﻧﺪ ﯾﮏ رﺷﺘﻪ ﺳﺎده اﺳﺖ ﻣﯽ ﺗﻮان از ﺗﻤﺎﻣﯽ ﻣﺘﺪ ﻫﺎ و ﺧﻮاﺻﯽ ﮐﻪ ﻗﺒﻼ ﺑﺮاي رﺷﺘﻪ ﻫﺎ اﺷﺎره
ﮐﺮدﯾﻢ اﺳﺘﻔﺎده ﮐﺮد .
;)'alert ('oTextbox1.length
۴٢
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
از اﯾﻦ ﺧﺎﺻﯿﺖ ﺑﺮاي ﻗﺮاردادن ﻣﻘﺎدﯾﺮ ﺟﺪﯾﺪ در textboxﻫﺎ ﻧﯿﺰ ﻣﯽ ﺗﻮان اﺳﺘﻔﺎده ﮐﺮد .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﺎ دﺳﺘﻮر زﯾﺮ ﻣﯽ ﺗﻮان ﻣﻘﺎدﯾﺮ
ﺟﺪﯾﺪي را ﺑﻪ ) oTextbox1ﮐﻪ در ﺑﺎﻻ ذﮐﺮ ﺷﺪ( اﺿﺎﻓﻪ ﮐﻨﯿﻢ :
;'oTextbox1.value='first textbox
ﺑﺮاي اﯾﻦ ﮐﺎر ﻣﯽ ﺗﻮاﻧﯿﻢ از ﺻﻔﺖ maxlengthدرﺗﮓ ﻫﺎي inputاﺳﺘﻔﺎده ﮐﻨﯿﻢ :
۴٣
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﮐﺎري ﮐﻪ ﺑﺎﯾﺪ در اﯾﻨﺠﺎ اﻧﺠﺎم دﻫﯿﻢ ﺗﺸﺨﯿﺺ وارد ﺷﺪن ﺣﺪاﮐﺜﺮ ﮐﺎراﮐﺘﺮ ﻫﺎ و ﻓﺮاﺧﻮاﻧﯽ ﻣﺘﺪ )( focusﺑﺮاي ﻋﻨﺼﺮ ﻓﺮم ﺑﻌﺪي اﺳﺖ .ﺑﺮاي
اﯾﻦ ﮐﺎر از ﺗﺎﺑﻌﯽ ﺑﻪ ﻧﺎم testاﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ :
{)function test(oTextbox
;var oForm = oTextbox.form
//make sure the textbox is not the last field in the form
if (oForm.elements[oForm.elements.length-1] != oTextbox
{ ))"&& oTextbox.value.length == oTextbox.getAttribute("maxlength
{ )for (var i=0; i < oForm.elements.length; i++
{ )if (oForm.elements[i] == oTextbox
{ )for(var j=i+1; j < oForm.elements.length; j++
{ )"if (oForm.elements[j].type != "hidden
;)(oForm.elements[j].focus
;return
}
}
;return
}
}
}
;}
ﺗﺎﺑﻌﯽ ﮐﻪ ﻣﺎ ﻧﻮﺷﺘﯿﻢ ﺑﺎﯾﺪ ﺑﻌﺪ از ﻫﺮ ﺑﺎر وارد ﮐﺮدن ﮐﺎراﮐﺘﺮ داﺧﻞ textboxﻓﺮاﺧﻮاﻧﯽ ﻣﯽ ﺷﻮد .ﺑﺮاي اﯾﻨﮑﺎر از روﯾﺪاد onKeyUpاﺳﺘﻔﺎده
ﺧﻮاﻫﯿﻢ ﮐﺮد ﺑﻪ ﺻﻮرت زﯾﺮ :
><input type='text' maxlength='4' onKeyUp='test(this)' /
۴۴
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﮐﺎر ﺑﺎ listboxﻫﺎ و comboboxﻫﺎ :
Listboxﻫﺎ و comboboxﻫﺎ در HTMLﺑﻮﺳﯿﻠﻪ ﺗﮕﯽ ﺑﻪ ﻧﺎم selectاﯾﺠﺎد ﻣﯽ ﺷﻮﻧﺪ ﮐﻪ ﺑﻪ ﺻﻮرت ﭘﯿﺶ ﻓﺮض ﻣﺮورﮔﺮ ﻫﺎ اﯾﻦ
ﻋﻨﺼﺮ را ﺑﻪ ﺻﻮرت comboboxﻧﺸﺎن ﻣﯽ دﻫﻨﺪ .
>"<select name="selAge" id="selAge
><option value="1">18-21</option
><option value="2">22-25</option
><option value="3">26-29</option
><option value="4">30-35</option
><option value="5">Over 35</option
></select
ﻣﻘﺪار ﺻﻔﺖ valueآﯾﺘﻤﯽ ﮐﻪ ﺗﻮﺳﻂ ﮐﺎرﺑﺮ اﻧﺘﺨﺎب ﻣﯽ ﺷﻮد ﺑﻪ ﺳﺮور ﻓﺮﺳﺘﺎده ﻣﯽ ﺷﻮد .
ﺑﺮاي ﻧﺸﺎن دادن ﯾﮏ listboxﻓﻘﻂ ﮐﺎﻓﯽ اﺳﺖ ﺻﻔﺘﯽ ﺑﻪ ﻧﺎم sizeرا ﺑﺎ ﻣﻘﺪاري ﮐﻪ ﻣﺸﺨﺺ ﮐﻨﻨﺪه ي ﺗﻌﺪاد آﯾﺘﻢ ﻫﺎي ﻗﺎﺑﻞ ﻧﻤﺎﯾﺶ ﺑﻪ
ﺻﻮرت ﭘﯿﺶ ﻓﺮض اﺳﺖ ﺑﻪ ﺗﮓ selectاﺿﺎﻓﻪ ﮐﻨﯿﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﮐﺪ زﯾﺮ listboxي ﺑﺎ 5آﯾﺘﻢ ﻧﻤﺎﯾﺸﯽ ﺑﺼﻮرﯾﺖ ﭘﯿﺶ ﻓﺮض را
ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ :
>"<select name="selAge" id="selAge" size="3
><option value="1">18-21</option
><option value="2">22-25</option
><option value="3">26-29</option
><option value="4">30-35</option
><option value="5">Over 35</option
></select
ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻫﺮ دو ﻧﻮع ﻋﻨﺼﺮ ﻓﻮق ﻣﯽ ﺗﻮان ﻃﺒﻖ ﻗﻮاﻋﺪي ﮐﻪ ﻗﺒﻼ ﮔﻔﺘﯿﻢ ﻋﻤﻞ ﮐﻨﯿﺪ :
;)"oListbox = document.getElementById("selAge
DOMﺑﺮاي ﺗﻤﺎﻣﯽ ﻋﻨﺎﺻﺮ selectآراﯾﻪ اي ﺑﻪ ﻧﺎم optionﮐﻪ ﻫﺮ ﺧﺎﻧﻪ آن اﺷﺎره ﺑﻪ optionي از آن ﻋﻨﺼﺮ دارد ﺗﻌﺮﯾﻒ ﮐﺮده اﺳﺖ .
ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺮاي ﻧﻤﺎﯾﺶ ﻣﺘﻦ )ﻋﻨﻮان( ﻫﺮ optionو ﻣﻘﺪار ﺻﻔﺖ valueآن ﻫﺎ از روش ﻫﺎي ﻗﺒﻠﯽ اﺳﺘﻔﺎده ﮐﻨﯿﻢ .ﻣﺜﻼ :
;)"oListbox = document.getElementById("selAge
ﻋﻼوه ﺑﺮ اﯾﻦ ﻫﺮ optionداراي ﺧﺎﺻﯿﺘﯽ ﺑﻪ ﻧﺎم indexاﺳﺖ ﮐﻪ در واﻗﻊ ﻣﻮﻗﻌﯿﺖ آن را در آراﯾﻪ optionﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .
اﻟﺒﺘﻪ ﭼﻮن optionﯾﮏ آراﯾﻪ اﺳﺖ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﺧﺎﺻﯿﺘﯽ ﺑﻪ ﻧﺎم lengthﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﺗﻌﺪاد ﮐﻞ optionﻫﺎي selectاﺳﺘﻔﺎده
ﮐﻨﯿﻢ .
اﻣﺎ ﺣﺎل از ﮐﺠﺎ ﺑﻔﻬﻤﯿﻢ ﮐﻪ ﮐﺪام ) optionآﯾﺘﻢ( ﺗﻮﺳﻂ ﮐﺎرﺑﺮ اﻧﺘﺨﺎب ﺷﺪه اﺳﺖ ؟
۴۵
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﭼﻮن ﻣﺎ ﺑﻪ ﺗﻤﺎم indexﺗﻤﺎم آﯾﺘﻢ ﻫﺎي اﻧﺘﺨﺎب ﺷﺪه اﺣﺘﯿﺎج دارﯾﻢ :
ﺑﺮاي اﯾﻦ ﮐﺎر ﻣﺎ اﺣﺘﯿﺎج ﺑﻪ ﯾﮏ ﺗﺎﺑﻊ دارﯾﻢ .
اﯾﻦ ﺗﺎﺑﻊ در ﻃﻮل آﯾﺘﻢ ﻫﺎي ﯾﮏ listboxﭼﺮﺧﺶ ﮐﺮده و ﻣﻘﺪار ﺧﺎﺻﯿﺘﯽ ﺑﻪ ﻧﺎم selectedﮐﻪ ﻣﺸﺨﺺ ﮐﻨﻨﺪه ي اﻧﺘﺨﺎب ﺷﺪن ﯾﺎ ﻧﺸﺪن
آﯾﺘﻢ اﺳﺖ را ﺑﺮرﺳﯽ ﮐﺮده و indexآن optionرا ﺑﻪ آراﯾﻪ اي اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ .ﺧﺎﺻﯿﺖ selectedﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﺪ ﯾﮑﯽ از ﻣﻘﺎدﯾﺮ
) trueاﻧﺘﺨﺎب ﺷﺪه( ﯾﺎ ) Fasleاﻧﺘﺨﺎب ﻧﺸﺪه( را در ﺑﺮ دارد .
روش ﺑﻬﺘﺮ و ﺟﺪﯾﺪﺗﺮ اﺳﺘﻔﺎده از ﻣﺘﺪي ﺑﻪ ﻧﺎم )( removeاﺳﺖ ﮐﻪ آرﮔﻮﻣﺎن ) (indexﻋﻨﺼﺮ ﻣﻮرد ﻧﻈﺮ ﺑﺮاي ﺣﺬف را ﻣﯽ ﮔﯿﺮد :
{ )Function test (oListbox, iIndex
;)oListbox.remove(iIndex
}
۴۶
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﻫﺮ ﯾﮏ از optionﻫﺎي ﻣﻮﺟﻮد در ﯾﮏ listboxرا ﺣﺬف ﮐﻨﯿﺪ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻣﺘﺪ )( removeﺑﺮاي ﻫﺮ ﮐﺪام از آن ﻫﺎ ﺻﺪا
ﺑﺰﻧﯿﺪ .
{ )Function test (oListbox
{ )for (var i=oListbox.options.length-1; i >= 0; i--
;)ListUtil.remove(oListbox, i
}
}
ﮐﺪ ﺑﺎﻻ ﺑﺮاي ﺣﺬف ،آﯾﺘﻢ ﻫﺎ را ﺑﺮ ﻋﮑﺲ ﻃﯽ ﻣﯽ ﮐﻨﺪ .اﯾﻦ ﮐﺎر اﻟﺰاﻣﯽ اﺳﺖ ﭼﺮا ﮐﻪ ﺑﺎ ﻫﺮ ﺑﺎر ﺣﺬف ﺷﺪن ﯾﮏ آﯾﺘﻢ از ﻟﯿﺴﺖ ﺧﺎﺻﯿﺖ
indexﻫﺮ optionدوﺑﺎره ﭼﯿﻨﯽ ﻣﯽ ﺷﻮد .
ﺑﻪ اﯾﻦ دﻟﯿﻞ ﻫﻤﯿﺸﻪ ﺑﻬﺘﺮ اﺳﺖ اول ﻋﻨﺼﺮي ﺑﺎ ﺑﯿﺸﺘﺮﯾﻦ indexﺣﺬف ﺷﻮد و ﺳﭙﺲ ﻋﻨﺎﺻﺮ ﺑﺎ indexﭘﺎﯾﯿﻦ ﺗﺮ.
روﯾﺪاد ﻫﺎ در ﺟﺎوااﺳﮑﺮﯾﭙﺖ
ﺗﻌﺎﻣﻼت ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﺎ HTMLاز ﻃﺮﯾﻖ رﺧﺪاد روﯾﺪاد ﻫﺎﯾﯽ ﮐﻪ ﺑﻪ واﺳﻄﻪ دﺳﺘﮑﺎري ﻫﺎﯾﯽ ﮐﻪ ﮐﺎرﺑﺮ ﯾﺎ ﻣﺮورﮔﺮ ﺑﺮ روي ﺻﻔﺤﻪ اﻧﺠﺎم
ﻣﯽ دﻫﺪ ،اﻧﺠﺎم ﻣﯽ ﺷﻮد .
ﻣﻮﻗﻌﯽ ﮐﻪ ﺻﻔﺤﻪ ﺑﺎرﮔﺬاري ﻣﯽ ﺷﻮد روﯾﺪادي رخ داده اﺳﺖ ،ﻣﻮﻗﻌﯽ ﮐﻪ ﮐﺎرﺑﺮ ﺑﺮ روي دﮐﻤﻪ اي ﮐﻠﯿﮏ ﻣﯿﮑﻨﺪ ،ﺑﺎز ﻫﻢ روﯾﺪادي رخ داده
اﺳﺖ .ﻃﺮاﺣﺎن ﻣﯽ ﺗﻮاﻧﻨﺪ از اﯾﻦ روﯾﺪاد ﻫﺎ ﺑﺮاي اﺟﺮاي ﮐﺪ ﻫﺎﯾﯽ ﮐﻪ ﺑﻪ روﯾﺪاد ﻫﺎ ﭘﺎﺳﺦ ﻣﯽ دﻫﻨﺪ اﺳﺘﻔﺎده ﮐﻨﻨﺪ ﻣﺜﻼ دﮐﻤﻪ اي ﻣﻮﺟﺐ ﺑﺴﺘﻦ
ﭘﻨﺠﺮه ﺷﻮد ،ﭘﯿﻐﺎﻣﯽ را ﺑﻪ ﮐﺎرﺑﺮ ﻧﻤﺎﯾﺶ دﻫﺪ ،داده ﻫﺎ را ارزش ﺳﻨﺠﯽ ﮐﻨﺪ و . ...
روﯾﺪاد ﻫﺎ در واﻗﻊ ﻋﻤﻠﯿﺎت ﺧﺎﺻﯽ ﻫﺴﺘﻨﺪ ﮐﻪ ﯾﺎ ﺗﻮﺳﻂ ﮐﺎرﺑﺮ ﯾﺎ ﺗﻮﺳﻂ ﺧﻮد ﻣﺮورﮔﺮ اﻧﺠﺎم ﻣﯽ ﺷﻮﻧﺪ .اﯾﻦ روﺑﺪاد ﻫﺎ ﻧﺎم ﻫﺎﯾﯽ ﻫﻤﭽﻮن click
mouseover ، load ،و ...دارﻧﺪ .اﺻﻄﻼﺣﺎ ﺑﻪ ﺗﺎﺑﻌﯽ ﮐﻪ در ﭘﺎﺳﺦ ﺑﻪ ﯾﮏ روﯾﺪاد ﺻﺪا زده ﻣﯿﺸﻮد ) event Handlerﮐﻨﺘﺮﻟﮕﺮ
ﺣﺎدﺛﻪ ( ﻣﯽ ﮔﻮﯾﻨﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺗﺎﺑﻌﯽ ﮐﻪ ﺑﺮاي ﭘﺎﺳﺦ ﺑﻪ روﯾﺪاد clickﺻﺪا زده ﻣﯽ ﺷﻮد ﮐﻨﺘﺮﻟﮕﺮ onclickﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد .
ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﮐﻨﺘﺮﻟﮕﺮ ﻫﺎي ﺣﺎدﺛﻪ ﺑﻪ دو روش ﻣﯽ ﺗﻮان ﻋﻤﻞ ﮐﺮد :از ﻃﺮﯾﻖ ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﯾﺎ از ﻃﺮﯾﻖ . HTML
ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﯾﮏ ﮐﻨﺘﺮﻟﮕﺮ از ﻃﺮﯾﻖ ﺟﺎوااﺳﮑﺮﯾﭙﺖ اﺑﺘﺪا ﺑﺎﯾﺪ ﺑﻪ ﺷﯽء ﻣﻮرد ﻧﻈﺮ ارﺟﺎﻋﯽ اﯾﺠﺎد ﮐﺮده و ﺳﭙﺲ ﺗﺎﺑﻌﯽ را ﺑﻪ ﮐﻨﺘﺮﻟﮕﺮ
ﺣﺎدﺛﻪ آن )ﮐﻪ ﺑﻪ ﺻﻮرت ﯾﮏ ﺧﺎﺻﯿﺖ ﺑﺮاي آن ﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ( ﻣﻨﺘﺴﺐ ﻣﯽ ﮐﻨﯿﻢ .ﺑﺮاي ﻣﺜﺎل :
در اﯾﻦ روش ﻧﺎم ﮐﻨﺘﺮﻟﮕﺮ ﺣﺎدﺛﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﻫﺮ ﺷﮑﻠﯽ ﻧﻮﺷﺘﻪ ﺷﻮد .در ﻧﺘﯿﺠﻪ onclickﻣﻌﺎدل اﺳﺖ ﺑﺎ OnClick :ﯾﺎ ONCLICK
.
۴٧
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
اﻧﻮاع روﯾﺪاد ﻫﺎ :
روﯾﺪاد ﻫﺎﯾﯽ ﮐﻪ در ﻣﺮورﮔﺮ رخ ﻣﯿﺪﻫﻨﺪ ﻣﻌﻤﻮﻻ ﺑﻪ ﭼﻨﺪ دﺳﺘﻪ زﯾﺮ ﺗﻘﺴﯿﻢ ﺑﻨﺪي ﻣﯽ ﺷﻮﻧﺪ :
روﯾﺪاد ﻫﺎي mouseﮐﻪ وﻗﺘﯽ ﮐﺎرﺑﺮ از ﻃﺮﯾﻖ ﻣﺎوﺳﺶ ﮐﺎرﻫﺎﯾﯽ را اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ ،رخ ﻣﯽ دﻫﻨﺪ .
روﯾﺪادﻫﺎي keyboardﮐﻪ وﻗﺘﯽ ﮐﺎرﺑﺮ ﺑﻮﺳﯿﻠﻪ keyboardدﮐﻤﻪ اي را ﻓﺸﺎر ﻣﯽ دﻫﻨﺪ رخ ﻣﯽ دﻫﻨﺪ .
روﯾﺪاد ﻫﺎي HTMLﮐﻪ ﻣﻮﻗﻌﯽ ﮐﻪ ﺗﻐﯿﯿﺮاﺗﯽ در ﭘﻨﺠﺮه ﻣﺮورﮔﺮ اﻧﺠﺎم ﻣﯽ ﺷﻮﻧﺪ رخ ﻣﯽ دﻫﻨﺪ .
روﯾﺪاد ﻫﺎي ﺗﻐﯿﯿﺮ ﮐﻪ زﻣﺎﻧﯽ ﮐﻪ ﺗﻐﯿﯿﺮاﺗﯽ در ﺳﺎﺧﺘﺎر DOMﺻﻔﺤﻪ اﻧﭽﺎم ﻣﯽ ﺷﻮد رخ ﻣﯽ دﻫﻨﺪ .
روﯾﺪادھﺎی : Mouseراﯾﺞ ﺗﺮﯾﻦ روﯾﺪاد ﻫﺎﯾﯽ ﻫﺴﺘﻨﺪ ﮐﻪ رخ ﻣﯽ دﻫﻨﺪ و ﺑﻪ ﺷﺮح زﯾﺮ ﻣﯽ ﺑﺎﺷﻨﺪ :
: Onclick ﻣﻮﻗﻌﯽ ﮐﻪ ﮐﺎرﺑﺮ دﮐﻤﻪ ﭼﭗ mouseرا ﻓﺸﺎر ﻣﯽ دﻫﺪ رخ ﻣﯽ دﻫﺪ ) .ﻧﻪ دﮐﻤﻪ راﺳﺖ( .ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺗﻤﺮﮐﺰ ﺻﻔﺤﻪ
ﺑﺮ روي ﯾﮏ دﮐﻤﻪ ﺑﺎﺷﺪ و ﮐﺎرﺑﺮ ﮐﻠﯿﺪ Enterرا ﻫﻢ ﺑﺰﻧﺪ اﯾﻦ روﯾﺪاد رخ ﻣﯿﺪﻫﺪ .
: Ondblclick ﻣﻮﻗﻌﯽ ﮐﻪ ﮐﺎرﺑﺮ دو ﺑﺎر دﮐﻤﻪ ﭼﭗ mouseرا ﮐﻠﯿﮏ ﻣﯽ ﮐﻨﺪ رخ ﻣﯽ دﻫﺪ .
: Onmousedown ﻣﻮﻗﻌﯽ ﮐﻪ ﮐﺎرﺑﺮ ﻫﺮ دﮐﻤﻪ اي از mouseرا ﻓﺸﺎر دﻫﺪ رخ ﻣﯽ دﻫﺪ .
: onMouseOut ﻣﻮﻗﻌﯽ رخ ﻣﯿﺪﻫﺪ ﮐﻪ ﻧﺸﺎﻧﮕﺮ ﻣﻮس ﺑﺮ روي ﻋﻨﺼﺮ اﺳﺖ و ﮐﺎرﺑﺮ آن را ﺑﻪ ﺑﯿﺮون از ﻣﺤﺪوده ﻋﻨﺼﺮ ﻫﺪاﯾﺖ
ﻣﯿﮑﻨﺪ .
: onmouseover ﻣﻮﻗﻌﯽ رخ ﻣﯽ دﻫﺪ ﮐﻪ ﻧﺸﺎﻧﮕﺮ ﻣﻮس از ﺧﺎرج از ﻋﻨﺼﺮ ﺑﺮ روي ان ﻫﺪاﯾﺖ ﻣﯽ ﺷﻮد .
: onmouseup ﻣﻮﻗﻌﯽ رخ ﻣﯽ دﻫﺪ ﮐﻪ ﻫﺮدﮐﻤﻪ اي از mouseرﻫﺎ ﻣﯽ ﺷﻮد .
: Onmousemove ﻣﮑﺮرا ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻧﺸﺎﻧﮕﺮ ﻣﻮس ﺑﺮ روي ﻋﻨﺼﺮي اﺳﺖ رخ ﻣﯽ دﻫﺪ .
ﺗﻤﺎﻣﯽ ﻋﻨﺎﺻﺮ ﻣﻮﺟﻮد درﯾﮏ ﺻﻔﺤﻪ از روﯾﺪادﻫﺎي ﻓﻮق ﺑﻪ ﺧﻮﺑﯽ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﻨﺪ .
۴٨
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
روﯾﺪادﻫﺎي : keyboard
روﯾﺪاد ﻫﺎي keyboardﺑﻪ واﺳﻄﻪ ﻋﻤﻠﯿﺎﺗﯽ ﮐﻪ ﮐﺎرﺑﺮ ﺑﺮ روي ﺻﻔﺤﻪ ﮐﻠﯿﺪ اﻧﺠﺎم ﻣﯽ دﻫﺪ رخ ﻣﯽ دﻫﻨﺪ .روﯾﺪاد ﻫﺎي ﺻﻔﺤﻪ ﮐﻠﯿﺪ ﺑﻪ ﺷﺮح
زﯾﺮ ﻣﯽ ﺑﺎﺷﻨﺪ :
: onkeydown ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﻠﯿﺪي از ﺻﻔﺤﻪ ﮐﻠﯿﺪ زده ﻣﯽ ﺷﻮد رخ ﻣﯽ دﻫﺪ .اﯾﻦ روﯾﺪاد ﻣﮑﺮرا زﻣﺎﻧﯽ ﮐﻪ دﮐﻤﻪ اي ﭘﺎﯾﯿﻦ
ﻧﮕﻪ داﺷﺘﻪ ﺑﺎﺷﺪ ﻧﯿﺰ رخ ﻣﯽ دﻫﺪ .
: Onkeypress ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﻠﯿﺪي از ﺻﻔﺤﻪ ﮐﻠﯿﺪ زده ﻣﯽ ﺷﻮد و ﺑﻪ ﻣﻮﺟﺐ آن ﯾﮏ ﮐﺎراﮐﺘﺮ ﺑﺮﮔﺮداﻧﺪه ﻣﯽ ﺷﻮد رخ ﻣﯽ دﻫﺪ .
اﯾﻦ روﯾﺪاد ﻣﮑﺮرا زﻣﺎﻧﯽ ﮐﻪ ﮐﺎرﺑﺮ دﮐﻤﻪ اي را ﭘﺎﯾﯿﻦ ﻧﮕﻪ ﻣﯿﺪارد ﻧﯿﺰ رخ ﻣﯽ دﻫﺪ .
: Onkeyup ﻫﻨﮕﺎﻣﯽ رخ ﻣﯿﺪﻫﺪ ﮐﻪ دﮐﻤﻪ اي ﮐﻪ ﭘﺎﯾﯿﻦ ﺑﻮده اﺳﺖ رﻫﺎ ﺷﻮد .
: Unloadﻫﻨﮕﺎﻣﯽ رخ ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ ﺻﻔﺤﻪ ﺑﺎر ﺷﺪه ﺟﺎري را ﺑﺒﻨﺪ .اﯾﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﻣﻮﺟﺐ زدن دﮐﻤﻪ (close) X
ﭘﻨﺠﺮه ﯾﺎ وارد ﮐﺮدن ﯾﮏ آدرس ﺟﺪﯾﺪ درﻧﻮار آدرس ﻣﺮورﮔﺮ ﺑﺎﺷﺪ .
: Abortاﯾﻦ روﯾﺪاد ﺑﺮاي ﯾﮏ objectﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﺎرﺑﺮ ﻗﺒﻞ از ﺑﺎرﮔﺬاري ﮐﺎﻣﻞ آن ،ﻋﻤﻞ ﺑﺎرﮔﺬاري را ﻣﺘﻮﻗﻒ ﮐﻨﺪ رخ ﻣﯽ
دﻫﺪ .
: Errorاﯾﻦ روﯾﺪاد ﺑﺮاي ﯾﮏ ﺻﻔﺤﻪ ﻫﻨﮕﺎﻣﯽ ﮐﻪ درآن ﯾﮏ ﺧﻄﺎ رخ ﻣﯽ دﻫﺪ ،ﺑﺮاي ﯾﮏ ﻋﮑﺲ ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻧﺘﻮاﻧﺪ ﺑﺎرﮔﺬاري
ﺷﻮد و ﺑﺮاي ﯾﮏ ﻋﻨﺼﺮ objectﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻧﺘﻮاﻧﺪ ﺑﺎرﮔﺬاري ﺷﻮد رخ ﻣﯽ دﻫﺪ .
: Selectاﯾﻦ روﯾﺪاد ﻫﻨﮕﺎﻣﯽ رخ ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ ﯾﮏ ﯾﺎ ﭼﻨﺪ ﮐﺎراﮐﺘﺮ را از داﺧﻞ ﯾﮏ ﻧﺎﺣﯿﻪ ﻣﺘﻨﯽ )ﻣﻨﻈﻮر ﺗﮓ ﻫﺎي
textareaو (inputاﻧﺘﺨﺎب ﮐﻨﺪ رخ ﻣﯽ دﻫﺪ .
۴٩
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
: Changeﺑﺮ روي ﯾﮏ ﻧﺎﺣﺒﻪ ﻣﺘﻨﯽ ،ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻣﻘﺪار داﺧﻞ ﻧﺎﺣﯿﻪ ﻣﺘﻨﯽ ﺗﻐﯿﯿﺮ ﮐﺮده و در اداﻣﻪ ﺗﻤﺮﮐﺰ ) (focusﺻﻔﺤﻪ از
روي ﻋﻨﺼﺮ ﺑﺮود و ﺑﺮاي ﯾﮏ ﻋﻨﺼﺮ selectﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻣﻘﺪار آن ﺗﻐﯿﯿﺮ ﻣﯽ ﮐﻨﺪ رخ ﻣﯽ دﻫﻨﺪ .
: Submitﺑﺮاي ﻋﻨﺼﺮ formﻫﻨﮕﺎﻣﯿﮑﻪ دﮐﻤﻪ submitﻣﺮﺑﻮط ﺑﻪ ﻓﺮم ﮐﻠﯿﮏ ﻣﯽ ﺷﻮد رخ ﻣﯿﺪﻫﺪ .
: Resetﺑﺮاي ﻋﻨﺼﺮ formﻫﻨﮕﺎﻣﯿﮑﻪ دﮐﻤﻪ resetﻣﺮﺑﻮط ﺑﻪ ﻓﺮم ﮐﻠﯿﮏ ﻣﯽ ﺷﻮد رخ ﻣﯿﺪﻫﺪ.
: Focusﺑﺮاي ﻋﻨﺼﺮي ﻫﻨﮕﺎﻣﯿﮑﻪ ﺗﻤﺮﮐﺰ ﺻﻔﺤﻪ ﺑﺮ روي آن ﺑﺮود رخ ﻣﯽ دﻫﺪ .
: Blurﺑﺮاي ﻋﻨﺼﺮي ﻫﻨﮕﺎﻣﯿﮑﻪ ﺗﻤﺮﮐﺰ ﺻﻔﺤﻪ از روي آن ﺑﺮود رخ ﻣﯽ دﻫﺪ .
ﺷﯽ ء : event
ﺷﯽ ء eventﮐﻪ در ﻧﺴﺨﻪ ١٫٢و ﺑﺎﻻﺗﺮ ﺟﺎوااﺳﮑﺮﯾﭙﺖ در دﺳﺘﺮس ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ ،ﺷﯽ ء ﺧﺎﺻﯽ اﺳﺖ ﮐﻪ ﺑﻪ ﻫﻤﺮاه ﻫﺮ ﺣﺎدﺛﻪ ﺑﺮاي
ﮐﻨﺘﺮﻟﮕﺮ ان ﺣﺎدﺛﻪ ﻓﺮﺳﺘﺎده ﻣﯿﺸﻮد .درواﻗﻊ ﮐﻨﺘﺮﻟﮕﺮ ﺣﺎدﺛﻪ ﻣﯽ ﺗﻮاﻧﺪ آن را ﺑﻪ ﻋﻨﻮان ﯾﮑﯽ از ﭘﺎراﻣﺘﺮ ﻫﺎ درﯾﺎﻓﺖ ﮐﻨﺪ و ﺧﺎﺻﯿﺖ ﻫﺎي ﺷﯽ ء
eventاﻃﻼﻋﺎﺗﯽ را در ﻣﻮرد آن ﺣﺎدﺛﻪ در دﺳﺘﺮس ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﺎن ﻗﺮار ﻣﯽ دﻫﺪ .
ﺑﻌﻀﯽ از اﻃﻼﻋﺎﺗﯽ ﮐﻪ اﯾﻦ ﺷﯽ ء در اﺧﺘﯿﺎر ﻗﺮار ﻣﯽ دﻫﺪ ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ :
ﺷﯽ اي ﮐﻪ ﻣﻮﺟﺐ رﺧﺪاد روﯾﺪاد ﺷﺪه اﺳﺖ
اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﻧﺸﺎﻧﮕﺮ mouseدرﻫﻨﮕﺎم رﺧﺪاد روﯾﺪاد
اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﺻﻔﺤﻪ ﮐﻠﯿﺪ درﻫﻨﮕﺎم رﺧﺪاد روﯾﺪاد
ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ اﯾﻦ ﺷﯽ ء ﻣﯽ ﺗﻮان ﺑﻪ ﭼﻨﺪﯾﻦ ﻃﺮﯾﻖ ﻋﻤﻞ ﮐﺮد :
در ، Internet Explorerاﯾﻦ ﺷﯽء ﺑﻪ ﻋﻨﻮان ﯾﮑﯽ از ﺧﻮاص ﺷﯽ ء windowﻗﺎﺑﻞ دﺳﺘﺮﺳﯽ اﺳﺖ .اﯾﻦ ﺑﺪﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﯾﮏ
ﮐﻨﺘﺮﻟﮕﺮ ﺣﺎدﺛﻪ ﺑﻪ ﻃﺮﯾﻖ زﯾﺮ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﺷﯽ ء eventدﺳﺘﺮﺳﯽ ﭘﯿﺪا ﮐﻨﺪ :
{ )( oDiv.onclick = function
;var oEvent = window.event
}
اﮔﺮ ﭼﻪ اﯾﻦ ﺷﯽ ء ﺑﻪ ﻋﻨﻮان ﯾﮑﯽ از ﺧﻮاص windowﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد اﻣﺎ ﻓﻘﻂ زﻣﺎﻧﯽ ﻗﺎﺑﻞ دﺳﺘﺮﺳﯽ اﺳﺖ ﮐﻪ روﯾﺪادي رخ داده ﺑﺎﺷﺪ .
ﺑﻌﺪ از اﯾﻨﮑﻪ ﮐﻨﺘﺮﻟﮕﺮ ﺣﺎدﺛﻪ ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ اﺟﺮا ﺷﺪ ،ﺷﯽ eventﻧﯿﺰ از ﺑﯿﻦ ﺧﻮاﻫﺪ رﻓﺖ .
اﻣﺎ در اﺳﺘﺎﻧﺪارد ﻫﺎي DOMﻣﯽ ﺗﻮان از روش دﺳﺘﺮﺳﯽ ﺑﻪ آرﮔﻮﻣﺎن ﺗﺎﺑﻊ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﺷﯽ ء eventاﺳﺘﻔﺎده ﮐﻨﯿﻢ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل :
{ )( oDiv.onclick = function
;]var oEvent = arguments[0
}
اﻟﺒﺘﻪ ﻣﯽ ﺗﻮان ﻧﺎﻣﯽ ﺑﺮاي اﯾﻦ آرﮔﻮﻣﺎن ﻧﯿﺰ ﻣﺸﺨﺺ ﮐﺮد و از آن ﺑﺮاي دﺳﺘﺮﺳﯽ اﺳﺘﻔﺎده ﻧﻤﻮد :
{ )oDiv.onclick = function (oEvent
}
ﺧﻮاص و ﻣﺘﺪﻫﺎي ﺷﯽء : event
اﯾﻦ ﺷﯽ ء ﺷﺎﻣﻞ ﺧﻮاص و ﻣﺘﺪ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ در اداﻣﻪ ﺑﺮرﺳﯽ ﺧﻮاﻫﯿﻢ ﮐﺮد :
: Shiftkeyاﮔﺮ دﮐﻤﻪ shiftزده ﺷﺪه ﺑﺎﺷﺪ trueو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت falseرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
: altkeyاﮔﺮ دﮐﻤﻪ altزده ﺷﺪه ﺑﺎﺷﺪ trueو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت falseرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
: ctrlkeyاﮔﺮ دﮐﻤﻪ ctrlزده ﺷﺪه ﺑﺎﺷﺪ trueو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت falseرا ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .
: Buttonﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﮐﺪام ﯾﮏ از دﮐﻤﻪ ﻫﺎي mouseزده ﺷﺪه اﻧﺪ .ﻣﻘﺎدﯾﺮي ﮐﻪ اﯾﻦ ﺧﺎﺻﯿﺖ ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﺑﻪ ﺷﺮح زﯾﺮ
اﺳﺖ :
۵٠
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
: ٠ ﻫﯿﭻ دﮐﻤﻪ اي زده ﻧﺸﺪه اﺳﺖ
: ١ دﮐﻤﻪ ﭼﭗ زده ﺷﺪه اﺳﺖ .
: ٢ دﮐﻤﻪ راﺳﺖ زده ﺷﺪه اﺳﺖ .
: ٣ دﮐﻤﻪ ﭼﭗ و راﺳﺖ ﺑﺎ ﻫﻢ زده ﺷﺪه اﻧﺪ .
: ۴ دﮐﻤﻪ وﺳﻂ زده ﺷﺪه اﺳﺖ .
: ۵ دﮐﻤﻪ ﻫﺎي ﭼﭗ و وﺳﻂ ﺑﺎ ﻫﻢ زده ﺷﺪه اﻧﺪ .
: ۶ دﮐﻤﻪ ﻫﺎي راﺳﺖ و وﺳﻂ ﺑﺎ ﻫﻢ زده ﺷﺪه اﻧﺪ .
: ٧ ﻫﺮ ﺳﻪ دﮐﻤﻪ ﺑﺎ ﻫﻢ زده ﺷﺪه اﻧﺪ .
clienXو : clientYﻣﺨﺘﺼﺎت ﻧﺸﺎﻧﮕﺮ ﻣﺎوس در ﻻﯾﻪ داﺧﻠﯽ در ﻫﻨﮕﺎم رﺧﺪاد ﺣﺎدﺛﻪ .
screenXو : screenYﻣﺨﺘﺼﺎت ﻧﺸﺎﻧﮕﺮ ﻣﺎوس ﻧﺴﺒﺖ ﺑﻪ ﮔﻮﺷﻪ ﺑﺎﻻ و ﭼﭗ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ .
pageXو : pageYﻣﺨﺘﺼﺎت x,yﻣﺎوس را ﻧﺴﺒﺖ ﺑﻪ ﮔﻮﺷﻪ ﭼﭗ و ﺑﺎﻻي ﺻﻔﺤﻪ در ﻫﻨﮕﺎم رﺧﺪاد ﺣﺎدﺛﻪ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .
: typeﻧﻮع روﯾﺪادي ﮐﻪ رخ داده اﺳﺖ را ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ ﻣﺜﻼ clickو mouseoverو...
: keyCodeﻋﺪدي اﺳﺖ ﮐﻪ ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ ﮐﺪام دﮐﻤﻪ از ﺻﻔﺤﻪ ﮐﻠﯿﺪ ﻓﺸﺎر داده ﺷﺪه اﺳﺖ .
: Targetﺷﯽ اي را ﮐﻪ در ﻣﻌﺮض ﺣﺎدﺛﻪ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ )ﻣﺎﻧﻨﺪ ﯾﮏ ﺳﻨﺪ ﯾﺎ ﯾﮏ ﭘﯿﻮﻧﺪ( .
و ﺑﺮاي ﺑﺎزﯾﺎﺑﯽ ﺗﻤﺎﻣﯽ ﮐﻮﮐﯽ ﻫﺎي از ﻗﺒﻞ اﯾﺠﺎد ﺷﺪه ﺑﻪ ﺷﮑﻞ زﯾﺮ ﻋﻤﻞ ﺧﻮاﻫﯿﻢ ﮐﺮد :
;Var x = document.cookie
ﻫﻤﺎﻧﻄﻮر ﮐﻪ در دﺳﺘﻮر اﺑﺘﺪاﯾﯽ ﻣﯽ ﺑﯿﻨﯿﺪ ﺑﺮاي اﯾﺠﺎد ﮐﻮﮐﯽ ﻣﯽ ﺑﺎﯾﺴﺖ رﺷﺘﻪ اي ﺣﺎوي ﯾﮑﺴﺮي ﺧﻮاص و ﻣﻘﺎدﯾﺮﺷﺎن را در ﻗﺎﻟﺐ ﺟﻔﺖ ﻫﺎي
) name=valueﮐﻪ ﺑﺎ ; از ﻫﻢ ﺟﺪا ﺷﺪه اﻧﺪ( ﺑﻪ ﺧﺎﺻﯿﺖ cookieﻧﺴﺒﺖ دﻫﯿﻢ .در ﺟﺪول زﯾﺮ ﻫﺮ ﯾﮏ از اﯾﻦ ﻗﺴﻤﺖ ﻫﺎ را ﺷﺮح ﻣﯽ
دﻫﯿﻢ .
ﻣﺜﺎل ﺗﻮﺿﯿﺤﺎت ﺧﺎﺻﯿﺖ
name=ali اﯾﻦ دﺳﺘﻮر ﻧﺎم و ﻣﻘﺪار ﮐﻮﮐﯽ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ . name=value
اﯾﻦ ﺧﺎﺻﯿﺖ اﺧﺘﯿﺎري زﻣﺎن اﻧﻘﻀﺎي ﮐﻮﮐﯽ را ﻣﺸﺨﺺ ﻣﯿﮑﻨﺪ .ﻣﻘﺪاري ﮐﻪ ﺑﻪ اﯾﻦ
=expires ﺧﺎﺻﯿﺖ داده ﻣﯽ ﺷﻮد ﻣﯽ ﺑﺎﯾﺴﺖ ﺗﺎرﯾﺨﯽ ﺑﻪ ﻓﺮﻣﺖ ﺑﺎزﮔﺸﺘﯽ از ﻣﺘﺪ
expires=date
13/06/2003 00:00:00 )( toGMTStringﺷﯽ ء Dateﺑﺎﺷﺪ .در ﺻﻮرﺗﯽ ﮐﻪ اﯾﻦ ﺧﺎﺻﯿﺖ ﻣﺸﺨﺺ
ﻧﺸﻮد ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﺎرﺑﺮ ﭘﻨﺠﺮه ﻣﺮورﮔﺮ را ﺑﺒﻨﺪد ﮐﻮﮐﯽ ﻧﯿﺰ از ﺑﯿﻦ ﺧﻮاﻫﺪ رﻓﺖ .
اﯾﻦ ﺧﺎﺻﯿﺖ اﺧﺘﯿﺎري ﻧﺎم ﻣﺴﯿﺮي از ﺳﺎﯾﺖ را ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﮐﻮﮐﯽ دﺳﺘﺮﺳﯽ داﺷﺘﻪ
path=/tutorials/ path=path
ﺑﺎﺷﺪ را ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ .
اﯾﻦ ﺧﺎﺻﯿﺖ اﺧﺘﯿﺎري ﻧﺎم ﺳﺎﯾﺘﯽ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ از ﮐﻮﮐﯽ اﺳﺘﻔﺎده ﮐﻨﺪ را ﻣﺸﺨﺺ ﻣﯽ
domain = mysite.com domain=domain
ﮐﻨﺪ .
۵١
ﻧﻮﯾﺴﻨﺪه :اﺣﻤﺪ ﺑﺎدﭘﯽ www.SoftGozar.Com آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
در ﻣﺜﺎل زﯾﺮ ﯾﮏ ﮐﻮﮐﯽ ﺑﺎ ﻧﺎم usernameو ﺑﺎ ﻣﻘﺪار aliﮐﻪ در ﺗﺎرﯾﺦ 15/02/2010از ﺑﯿﻦ ﻣﯽ رود اﯾﺠﺎد ﻣﯽ ﺷﻮد :
در ﻣﺜﺎل زﯾﺮ ﯾﮏ ﮐﻮﮐﯽ ﺑﺎ ﻧﺎم myCookieو ﺑﺎ ﻣﻘﺪار this is my cookieاﯾﺠﺎد ﺷﺪه اﺳﺖ :
ﻧﮑﺘﻪ :در ﮐﺪ ﻓﻮق ﺗﺎﺑﻊ escapeﯾﮏ رﺷﺘﻪ را درﯾﺎﻓﺖ ﮐﺮده و ﺗﻤﺎﻣﯽ ﮐﺎراﮐﺘﺮ ﻫﺎي ﺑﯽ ارزش آن را ﺑﻪ ﮐﺪ ﻣﻌﺎدﻟﺶ
ﺗﺒﺪﯾﻞ ﻣﯽ ﮐﻨﺪ .ﻗﺒﻞ از ﮐﺪ ﻣﻌﺎدل ﯾﮏ ﻋﻼﻣﺖ %ﻗﺮار ﻣﯽ ﮔﯿﺮد .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل اﯾﻦ ﺗﺎﺑﻊ ﮐﺎراﮐﺘﺮ spaceرا ﺑﻪ ﮐﺪ
%20ﺗﺒﺪﯾﻞ ﻣﯽ ﮐﻨﺪ .اﯾﻦ ﺗﺎﺑﻊ ﻣﻌﺎدل ﺗﺎﺑﻊ )( encodeURIComponentاﺳﺖ .
ﺣﺎل ﮐﺎﻓﯽ اﺳﺖ ﺑﺮاي ﺣﺬف ﯾﮏ ﮐﻮﮐﯽ ﻧﺎم آن را ﺑﺮاي ﺗﺎﺑﻊ ﻓﻮق ﺑﻔﺮﺳﺘﯿﻢ .دﺳﺘﻮر زﯾﺮ ﮐﻮﮐﯽ ﺑﺎ ﻧﺎم usernameرا ﺣﺬف ﻣﯽ ﮐﻨﺪ :
; )"delete_cookie ("username
;var x = document.cookie
اﯾﻦ دﺳﺘﻮر ﻟﯿﺴﺘﯽ )رﺷﺘﻪ( از ﺟﻔﺖ ﻫﺎي name=valueﺗﻤﺎﻣﯽ ﮐﻮﮐﯽ ﻫﺎي ﻗﺎﺑﻞ دﺳﺘﺮس ﺑﺮاي ﺳﻨﺪ ﺟﺎري را ﮐﻪ ﺑﺎ ; از ﻫﻢ ﺟﺪا ﺷﺪه اﻧﺪ
ﺑﺮ ﻣﯽ ﮔﺮداﻧﺪ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﻣﺘﻐﯿﺮ xﻣﯽ ﺗﻮاﻧﯿﺪ ﺣﺎوي رﺷﺘﻪ اي ﺑﻪ ﺻﻮرت زﯾﺮ ﺑﺎﺷﺪ :
""username=ali; password=abc123
در اﯾﻦ ﻣﺜﺎل دو ﮐﻮﮐﯽ از ﻗﺒﻞ اﯾﺠﺎد ﺷﺪه اﺳﺖ :ﯾﮑﯽ ﺑﺎ ﻧﺎم usernameو ﻣﻘﺪار aliو دوﻣﯽ ﺑﺎ ﻧﺎم passwordﺑﺎ ﻣﻘﺪار . abc123
اﮐﻨﻮن xﯾﮏ ﻣﺘﻐﯿﺮ رﺷﺘﻪ اي ﺳﺎده اﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﻫﺮ ﯾﮏ از ﮐﻮﮐﯽ ﻫﺎ و ﻣﻘﺪارﺷﺎن اﺑﺘﺪا xرا ﺑﻮﺳﯿﻠﻪ ﻣﺘﺪ splitﺷـﯽ
stringﺑﻪ آراﯾﻪ اي ﺗﺒﺪﯾﻞ ﮐﺮده و ﺑﻮﺳﯿﻠﻪ ﻣﺘﺪ ﻫﺎي ﺧﺎص آراﯾﻪ ﺑﻪ آن ﻫﺎ دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﯿﻢ .ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﺮاي ﭼـﺎپ ﻣﻘـﺪار ﮐـﻮﮐﯽ
ﻫﺎي ﻓﻮق ﻣﯽ ﺗﻮان ﺑﻪ ﺻﻮرت زﯾﺮ ﻋﻤﻞ ﮐﺮد :
۵٢
اﺣﻤﺪ ﺑﺎدﭘﯽ: ﻧﻮﯾﺴﻨﺪه
var allCookie
www.SoftGozar.Com
= document.cookie;
آﻣﻮزش ﮐﺎرﺑﺮدي ﺟﺎوااﺳﮑﺮﯾﭙﺖ
www.SoftGozar.Com
۵٣