ThS NGUYỄN NAM THUẬN nhóm tin học thực dụng Hng o dn t hc a đ a m ắ H Ậ © P v m ìm y Sách dành cho tất quan tâm đến JavaScript, mong muốn tnục đuỢc, khứ /ối JavaScript, thêm thành phần tương lác vào trang web cá nhân minh > Sách õề cụp óến k/úa cạnh miết yếu ngơn ngữ lạp trình câu lệnh đối tượng, kiểu liệu > Hưổng d ẫ u cách ú d i h ụp JavaSeiipỵ v o mộl w e b site, sử dụng JavaScript với Document Object Model, eveni trình duyệt, frame 'veb form > Với chủ điểm JavaScript nâng cao gỡ rối chương trình JavaScript, phát mã Ici, liên kết ''ôi đối tượng khác nhúng mộl trang web NHÀ XUẤT BẢN THÔNG TIN VÀ TRUYỀN THƠNG Chưởng 1: Chuẩn bị để lập trình bằnq JavaScript PHẦN í Hoc điểm JavaScript Chiứýng : Chuẩn bị đ ể lập trình J a va S crip t Chương 2: Học điểm J a va S crip t Chương 3: Sử dụng cá c c la ss J a va S crip t c i sẵ n Chương : TỔchức liệii thành cá c mảng Chương 1: Chuẩn bị để lập trình JavaScript Chuẩn bị để lộp trình bòng JavaScript T ro n g chư ng n y bạn học n h ữ n g đ iểm c h ín h sau đây: B Chọn môi tnỉờng phát triển ỄỄ Học nbữnq JavaScript cỏ thể khơng thề thực biện M Quyết định phiêti lĩèiO JavaScript đ ề sủ dụng B Test chương trình JavaScript sứ dụng HTML R Sử dụnq thẻ HTML B Tạo template JavaScript Microsoft Notepad B Giao tiếp với người dùng ằng sau phim th àn h cơng có người hậu trường chi phối tương tác diễn viên, n h ân viên điều khiển camera, tác giả kịch th n h viên ê kíp khác Đây đạo diễn bạn không th ậ t thấy người m àn hình, chất lượng phim phụ thuộc vào th n h công nỗ lực người Đ JavaS cript "đạo diễn" đằng sau hậu trường nhiều web site Internet Cơng việc chi phối tương tác đối tượng kiện cho hai tương tác trơn tru với Nói chung, web site Chưởng 1: Chuẩn bi để lập trình JavaScript phức tạp th ì phụ thuộc vào JavaS cript đạo diễn Ánh sáng! Camera! T rình duyệt! Diễn! Có lẽ câu hỏi cần hỏi JavaScript là, gì? Câu trả lòi đơn giản n h ất JavaScript ngơn ngữ lập trìn h đơn giản, sử dụng chủ yếu để mang tương tác đến web site Nó thường đươc gọi ngơn ngữ viết script (kịch bản) có dạng khơng viết script Một script th u ật ngữ lập trìn h chương trìn h không cần biên dịch để chạy Các script cần thực tác vụ riêng biệt sau th o át thường khơng có giao diện người dùng đồ họa (GUI) để nói đến JavaScript, Perl VBScript ngôn ngữ viết script phổ biến n h ấ t sử dụng web site Internet Tìm hiểu lịch sử JavaScript Jav aS cript sinh nhu cầu cộng tác tran g web (H ypertext M arkup Language) với nội dung nhúng chẳng h ạn applet Java Nhưng Jav aS crip t sử dụng cho nhiồu điều Nó dược sử dụng để giúp người đùng điền vào form, cung cấp tương tác \*eb sk e thúng qjfi L c meixU dộng cung cấp nàng lượng cho shopping cart (giỏ mua sắm) thương mại điện tử (e-commerce) T h ật ra, người ta nói rằn g 25% tấ t web site ngày sử dụng JavaScript m ột cách cách T h ủ ỉh o V Măc dù hầu hết (99.5% hoâc nhiều hơn) ohầp mềm di'ypt Web ctarn» sử dim", ngày có sẵn hỗ trợ cho JavaScript, người dùng có thê chọn tát hỗ trợđó Khi thiết kế web site cho người thấy Internet, diều quan Irọng la r.hơ ràr.g mọt sơ ngri knông "thấy' JavaScript Xét tốc độ thay đổi công nghệ khác liên quan đến web để đưa vào tínìi mới, JavaScript 011 định JavaScript đà m ất nãin để tiễn triển từ phiên 1.5 ban đầu đến phiên 2.0 Một số người cảm thây tốc độ chậm nàv vừa điều phúc lành vừa lời nguyền rủa cho ngôn ngữ Điều phúc h hỗ trợ JavaScript n h ất quán qua nhiều nhà tạo trìn h duyệt số phiên Các nhà phát triển Web có th ể thực thi chương trìn h JavaScript khơng phái bận tâm nhiều vấn đề khả n ăn g tương thích (ngoại trừ trá n h kỹ th u ật viết mã khơng tương thích n h ât định) JavaScript chọn lựa sử dụng rộng rãi chủ yếu nhà phát triển tin tưởng làm việc Lời nguyền rủa JavaScript giậm chân chỗ, ngồn ngữ khác lên để lấp đầy khoảng trống kỹ thuật Ngày có nhiều web site sử dụng Visual Basic Script (VBScript) Java 10 Chương 1: Chuẩn bị để lập trình JavaScript Server Pages (JSP) làm ngôn ngữ viết script web phía server thay JavaScript T h ật ra, việc phần mềm web server thông dụng tung gần (iPlanet Web Server) loại bỏ hỗ trự JavaScript Tuy nhiên, điều có th ể thay đổi JavaScript2.0 thu hút ý nh p h át triển Nguồn gốc JavaScript Jav aS cript xuất lần Netscape 2.0 vào năm 1995 Ban đầu JavaScript th iết kế để giúp tích hợp trang HTML với applet Jav a - ứng dụng Jav a nhúng trang web Các n hà p h át triển nhanh chóng nhận tiềm th ậ t chẳng JavaS cript đá sử dụng để thèm khả tương tác vào web site - phần lớn thời gian trợ giúp Java Hình 1.1 m inh họa Navigator 2.0, trìn h duyệt web bật JavaScript JavaScript xâm nhập vào Internet Explorer Ngay sau Netscape Communications lần đầu giới thiệu JavaScript trìn h duyệt N avigator 2.0 nó, Microsoft nhận tầm quan trọng việc kết nhập ngôn ngữ vào trìn h duyệt In tern et Explorer Vì Netscape khơng xác gởi m ail cho Microsoft mã nguồn th ậm chí thơng số’ ngơn ngữ bí m ật bảo vệ tốt, Microsoft buộc phải th iết kế đối chiếu JavaS cript để tạo phiên riêng Microsoft đặt tên cho phiên Jscript, V Ị Netscape sở hữu thương hiệu t JavaScript Các phiên trước dó Jscrip t đá không thực thi ciiức náng n h ấ t định theo xác cách JavaS cript khơng tương thích JavaS cript trìn h duyệt điều mà nhà p h át triển thường phải xem xét viết script tran g web họ JavaScript trở thành chuẩn thức Trong ngày đầu Web, khả tương thích trình duyệt vấn đề lớn - lớn nhiều so với ngày Hai cơng ty trìn h duyệt có thay đổi ngơn ngữ HTML JavaScript để cố đạt ưu th ế cạnh tran h với nhau, gây nhừng đau đầu lớn cho nhà phát triển web cố tạo trang web hỗ trợ hai trìn h duyệt May thay hai công ty bớt căng thẳng Netscape khơn ngoan chuyển chuẩn hóa JavaS cript sang hiệp hội n h sản xuất m áy tín h châu Âu (ECMA) vào năm 1996 ECMA tập trung vào việc chuẩn hóa ngơn ngữ cốt lõi để thứ khác (chẳng hạn JavaScript Document Object Model DOM) cho nhà sản xuất trìn h duyệt Kết khơng tương thích tiếp tục tồn trìn h duyệt kị 11 trình bàng JavaScript HHQ ytsN cttcopc - fYahool) P e r s o n a lứ ert _ak,o! v>ô èVTjo; ciôfc Search P*t>pkSằtf;-h ".ity M>»pg - T nd a ÿ f N>.vs - SiocLChu>l*g - sperrt? A rts and H um anities ^t:iu.VợÊ*msằp*!CtQ|p!*imy,JjW áfc'*?'• • B u s in e ss an d K fo n o m v ^ tra ü Ĩ:ỉĩ«ĩsntíĩ ATuuttf,QiaaSfci*»I&4¿ • C om puter» ai.d I n te rn e t ỊXtia!) !« :t:.ẹt 'ỵ y / Q Ịỵ£.ỳiigì*&* Education *iòOl$tiôLLLilLM^iEyVy^ 'V-è "V -/S N ew s and M e d ia rxtra!) CitfT.ent Eyer.ts.M*,g*flr.rs xỵ* N.fWijiftpjeii • R p n q a d o n and Sports fXb?r Spirts ơtaitÿ T :sv;i A.\*Ị»C'UlJL'iS'i.i • Hefcieure * s *¿í£tí2?vv¡ií# »' * ' L*v ■*■£< • Regional ^Püf.tru1,.Riflor.t-US • Sriftnrfl K n n a in m e iit (Xtra! ; ăh [DocvmcdSm s,-lilts r r r v r r r 'g x r r t — ï î î r~ ‘~ 3SẼắ hlnh 1.1 ũiện mạo Web nàm 1995 qua mắt Navigator ECMA đă p h át hàn h ngôn ngữ viết script chuẩn hóa gọi ECM AScript vào năm 1997 Họ cập n h ật chuẩn hai lần hai năm gọi cập nhật Edition Edition JavaScript 1.5 phù hợp vrti Edition chuẩn Vị ti í JavaScript ngày nd) Chuẩn ECMAScript Edition ià cập nhật tung Irong nàm JavaScript ‘2.0 pnù họp với Edition chuẩn ECM AScnpt, khác biệt, hai ấn th ì nhó Q & c h * - ĩliơnq số líij tliuột cho JavoScpipf c6 fhế tìm thđy fpên web site Mozilla.opq littp^vwww.mozillo.opq/js/lanquaqc/js 20/index.html Ngày Jav aS cript Netscape Jscrip t Microsoft tuân theo chuẩn ECMAScript, ngơn ngữ hỗ trợ tín h vơn khơng phải phần chuẩn Chưởng 1: Chuẩn bị để lập trình JavaScript 12 Bảng 1.1 Trình ỉự thời gian phiẽn JavaScript Các trình duyệt Phiên JavaScript Ngày phát hành 1.0 Tháng 12, 1995 Navigator Internet Explorer Tháng 4, 1996 Navigator 1.1 1.2 Tháng 12, 1996 Navigator 4, Internet Explorer 1.3 Tháng 8, x39S 1.4 1.5 2.0 Tuân th eo chuẩn Không Một phần, với ECMAScript Một phần, với ECMAScript Navigator 4.06, Internet Explorer Tháng 10, 1998 Phiên 1.4 không xuất trình duyệt web Tháng 4, 2000 Navigator 7, Internet Explorer 5.5 6, Mozilla ECMÂScript i, ISO-16262 2003 ECMAScript ECMAScript 1, ISO-16262 ECMAScript B ảng 1.1 trìn h bày m ột d anh sách theo thứ tự thời g ian phiên b ản Ja v a S c rip t bao gồm m ột danh sách ngắn trìn h duyệt th ô n g dụnb hỗ trợ Q Ịx d í - -Mqdij phát hành ckínli xóc JavaScript pliiên trìnli dui^ệt vốn liỗ tpợ chưa dược quijết ẩịnli Uli sách nàij viết C họn môi trư ờng p h t triể n Một tro n g nhữ ng ưu th ế lớn n h ấ t Ja v a S c rip t hỗ trợ trê n nhiều n ền khác nhau, thường cho mục đích k hác Loại ứng dụng Ja v a S c rip t phổ biến n h ấ t ngày m ột ứng dụng chạy bên tro n g m ột trìn h duyệt web dạng m ột scrip t p h ía client Từ lâu Ja v a S c rip t hỗ trợ m ột ngơn ngữ p h ía web server, tro n g môi trư ờng phổ biến chẳng h ạn IIS LiveW ire Từ n h p h t triể n th ậ m chí có nhiều lựa chọn cho việc sử dụng Ja v a S c rip t tro n g môi trường khác T rong p h ần n ày xem Jav aS crip t sử dụng tro n g môi trường th ế Những môi trường chưa hỗ trợ JavaS cript , ng điều quan trọ n g xem môi trư ờng tiề m n ăn g m kể từ k hi hỗ trợ có lẽ giới thiệu tro n g tương lai gần Chương 1: Chuẩn bi để lậo trình JavaScript 13 P h ần thảo luận môi trường p h t triể n cho nhà p h t triể n Jav aS crip t Trong vài năm đầu Jav a S c rip t hữu, n h p h t triể n phải tạo chương trìn h Jav aS crip t họ sử dụng chĩ m ột biên tậ p te x t m khơng có trợ giúp môi trường p h át triể n tích hợp (IDE) Nhưng cơng cụ HTML p h t triển , nhiều người th ém hỗ trợ p h át triển cho ngôn ngữ v iết script phổ biến n h ấ t th ố giới Và ngày 1)11’ hỗ tro' hữu tro n g tấ t cơng cụ lớn th sau phần Phát triển trang web vận hành JavaScript Các ứng dụng m th iế t k ế để chạv bên m ột trìn h duyệt sử dụng phổ biến n h ấ t cho Jav aS crip t Jav aS crip t đưực tích hựp rấ t m ạnh vào môi trường duyệt web thông qua DOM N etscape giới thiệu DOM gơíic Jav aS crip t 1.0 Điều bạn cẩn biết Sự tương tự phía client Trcnỗj cụnc ngh phỏt trin w e t, 'rỡnh djyêt web ' nr.áy t'n’ mà r ó chạy t r ê n đ ó t h n g đ ợ c g ọ i C lie n t Tương tự , p h ầ n m ề m w e b s e r v e r v m y tính mà chạy gọi server Do thuật ngữ client-side JavaScript (JavaScript phía C lie n t) ám đến chương trình JavaScript nhúng bên trang web chạy máy C lie n t JavaScript chạy tren rráy &e-.'V3r đưọc gọi ià servei-s.díỉ Ja/sSonpt (Ja/aSoript pnía server) C hẳng sau việc điều k hiển DOM chuyển sang World W iif 'Nìb Consortium (W3C , tố ciiiic tiêu ohuẩn Cnuẩn DOM đá p h át triể n từ việc xử lý cách Jav aS crip t tương tác với m ột trìn h duyệt đến việc xử iý cách chuẩn để tao, đọc chình sửa tài liệu HTML XML Các ứng dụng Jav a S c rip t th iế t k ế để chạy bên m ột trìn h duyệt p h ải chịu m ột số h ạn chế an ninh Những ứng dụng thường không truy cập ổ đĩa cứng người dùng b ấ t kỳ ứng dụng cài đ ặ t trê n m áy tín h người dùng Đối với người dùng, điều 14 Chương 1: Chuẩn bị để lập trình JavaScript có nghĩa ứng dụng JavaScript thường không gây rủi ro an ninh khơng th ể chứa vi rút mã độc hại khác Netscape N avigator 4.0 (còn gọi Communicator) giới thiệu khái niệm signeđ script (các script có chữ ký) Một script ký sử dụng key (khóa) số an tồn yêu cầu thêm đặc quyền bên mơi trường trìn h duyệt chẳng hạn khả n ăn g gởi e-mail đọc file từ đĩa cứng Trình duyệt thường nhắc người dùng để hỏi họ có cho script đặc quyền hay khơng T rình duyệt web Mozilla người họ hàng nó, N avigator thay đổi cách script có chữ ký xử lý cách khơng tương thích với N avigator íiữa Mioioso?; IntcTiifet Explorer xử lý an ninh hồn toan khác sử dụng cac trusttíd zone (các vùng tin cậy ỳ Kết giải pháp an ninh khơng đồng nhất, có chuẩn để viết ứng dụng cho script vốn có đặc quyền mở rộng Thực tế Jav aS cript ký sử dụng Sự p h át triển ứng dụng phía C lie n t điểm m ạnh cốt lõi JavaScript Các nhà p hát triển thực gặp rủi ro khơng tương thích với nhiều hệ điều hành trình duvệt web việc chọn b ấ t kỳ ngôn ngữ JavaScript cho p h t triển phía Client họ Tạo ứhg dụng web dựa vào server Mặc dù Jav aS cript chi phối tấ t ngôn ngữ khác nói lập trình web C lie n t, điều khơng phải trường hợp với lập trìn h phía server JavaS cript nnửng ngơn ngữ phía server hồ trợ (trở lại năm 1996, JavaScript tung web server nó», khơng th ể sử dụng khởi đầu có theo hướng lợi cho P erl n h an h chóng trở th n h õơiig cụ viết script phía Client phổ biến sô" ngôn ngữ khác lên (bao gồm VBScript tro n g môi trường ASP, PH P JS P ) lựa chọn ưa thích Một lý ngơn ngữ phía server th ay đổi rấ t nhiều mơi trường server có th ể điều khiển mức độ n h ấ t định bời n hà p h át triển web Trong hầu hết trường hợp, n h p h át triển có rấ t k h ả năn g điều khiển trìn h duyệt m người ta s dụng Vì tro n g k h i việc chọn ngơn ngữ lập trìn h p h ía Client th ậ t định "mẫu số chung nhỏ nhất" (ngôn ngữ hỗ trợ hầu h ết trìn h duyệt), lựa chọn server b ấ t kỳ gi mà nh p h át triển muốn sử dụng ĐỐI với số nh p h át triển, chọn ngơn ngữ lập trìn h giống đứa trẻ cửa hàng bánh kẹo Có nhiều ngơn ngữ lập trìn h phía Client để chọn lựa khơng có lý th ật để chọn so với ngoại trừ sở thích cá nhân Chương 15: sử dụng JavaScript để quản lý Plug-in trình duyệt 331 Rĩ?] E3 U s e O l h e i A b liv e X C u n ticri? • M ic m x o ỉl I n lo t n e l E x p t a e t Embed the Microsoft Calendar Control into a Web Page 1*5» Ị 12004 :'N Ju ly 2004 Mon * V* Tue- / • Sun '• Wed 2?’- V < ■■■ s" 11 ô G '' * I K * 15 t e ’• ị* 72 23 26 :■ : > / »■Ị*, 28 29 30 a J • •xi'-r.'" ï ■ mm i'V -V & 'v 21 % J ■'''Â&ế-U M *■ V u tr as ' Thu ' 31 ? r • rrrri Hình 15.4 Control calendar ân định sẵn dược sử dụng dể chọn ngày tháng ccbjñct id=”nri\'Calendir” width="480" height-”'»90" classid=CLSID:8E27C92B-1264-101 C-8A2F-040224009C02">