Paggawa ng JavaScript
- Nakaraang pahina Kasaysayan ng JavaScript
- Susunod na pahina Gramatika ng ECMAScript
Ang pangunahing ECMAScript ng JavaScript ay binabalangkas ang sintaksis at pangunahing mga bagay ng wika;
Binabalangkas ng DOM ang mga paraan at interface sa paghawak ng nilalaman ng web page;
Binabalangkas ng BOM ang mga paraan at interface sa pag互通 sa browser.
ECMAScript, DOM at BOM
Kahit na ang ECMAScript ay isang mahalagang standard, ito ay hindi ang nag-iisang bahagi ng JavaScript, at gayundin hindi ang nag-iisang bahagi na napag-standardize. Sa katunayan, ang kumpletong implementasyon ng JavaScript ay binubuo ng tatlong magkakaibang bahagi:

ECMAScript
Ang ECMAScript ay hindi nakasangguni sa anumang partikular na browser, sa katunayan, wala rin itong nabanggit na paraan ng paggamit ng user input at output (hindi katulad ng C na kailangan ng panlabas na library para sa ganitong mga gawain). Ano ang ECMAScript? Ang paglalarawan ng ECMA-262 standard (ikadalawampu) ay nasusulat sa ibaba:
“Ang ECMAScript ay nagbibigay ng pangunahing kakayahan sa pagsusulat ng script para sa iba't ibang kapaligiran ng tagapagsalin, kaya ang pangunahing wika ng script ay naihiwalay sa anumang partikular na kapaligiran ng tagapagsalin... ...”
Ang web browser ay isang kapaligiran ng paglulunsad para sa ECMAScript, ngunit ito ay hindi nag-iisang kapaligiran ng paglulunsad. Sa katunayan, mayroong maraming iba't ibang kapaligiran na maaaring isanggapan ang pagpapatupad ng ECMAScript (halimbawa, ang Nombas ScriptEase, at ang ActionScript ng Macromedia na ginagamit sa Flash at Director MX). Ano ang sinasabi ng ECMAScript sa labas ng browser?
Maliit na sinasabi, ang ECMAScript ay naglalarawan ng sumusunod:
- Grammar
- Mga uri
- Mga pangungusap
- Keywords
- Reserved words
- Operator
- Mga bagay
Ang ECMAScript ay isang paglalarawan lamang, na naglalarawan ng lahat ng atrubuto, paraan at mga bagay ng script wika. Ang iba pang mga wika ay maaaring maisakop ang ECMAScript bilang batayan ng pagkilala ng mga tampok, tulad ng JavaScript:

Ang bawat browser ay may sariling pagpapatupad ng ECMAScript interface, at pagkatapos ito ay pinagpahid, na naglalaman ng DOM at BOM (maaaring mababasa sa mga susunod na mga Seksyon). Siyempre, mayroon ding ibang pagpapatupad at pagpahid ng ECMAScript na wika, tulad ng Windows Scripting Host (WSH), ang ActionScript ng Macromedia sa Flash at Director MX, at ang Nombas ScriptEase.
1. Bersyon ng ECMAScript
Ang ECMAScript ay binibigkas sa ilang iba't ibang bersyon, ito ay inilalarawan sa isang standard na tinatawag na ECMA-262. Katulad sa ibang mga standard, ang ECMA-262 ay maaaring maulit at nagbabago. Kapag may malaking pagbabago, ang isang bagong bersyon ng standard ang maaaring ilabas. Ang pinakabagong bersyon ng ECMA-262 ay 5.1, na inilabas noong Hunyo 2011.
Ang unang bersyon ng ECMA-262 ay katulad sa Netscape JavaScript 1.1 sa kadalasang kalikasan, ngunit inalis ang lahat ng kodong may kaugnayan sa browser, at may ilang maliliit na pagtutugis. Sa unang lugar, ang ECMA-262 ay nangangailangan ng suporta sa Unicode standard (para suportahan ang ilang wika). Pangalawa, ito ay nangangailangan na ang mga bagay ay independenteng platform (ang Netscape JavaScript 1.1 sa katunayan ay may iba't ibang pagpapatupad ng bagay, halimbawa, ang Date bagay ay kaugnay ng platform). Ito ang pinakamahalagang dahilan kung bakit hindi sumagabal ang JavaScript 1.1 at 1.2 sa unang bersyon ng ECMA-262 na pangtalaan.
Ang pangalawang bersyon ng ECMA-262 ay karamihan ay pang-editoryal na update. Ang pagbabago ng pamantayan na ito ay para sa mahigpit na pagkakasunod sa ISO/IEC-16262, at walang partikular na dagdag, pagbabago at pagtanggal ng nilalaman. Ang ECMAScript ay pangkaraniwang hindi sumusunod sa ikalawang bersyon.
Ang pangatlong bersyon ng ECMA-262 ay ang unang tunay na update ng pamantayan. Ito ay nagbibigay ng mga update sa paggamit ng string, pagtutukoy ng error at paglabas ng numero. Sa karagdagan, ito ay nagdagdag ng suporta sa regular expression, bagong kontrol statement, try...catch exception handling, at ilang maliit na pagbabago para sa pandaigdigang pagiging pandaigdig. Karaniwan, ito ay nagbibigay ng marka na ang ECMAScript ay naging tunay na programming language.
2. Ano ang kahulugan ng pagkakasunod sa ECMAScript
Sa ECMA-262, ang pagkakasunod sa ECMAScript (conformance) ay may malinaw na pagtutukoy. Ang isang script language ay dapat matugunan ang mga sumusunod na apat na pangunahing prinsipyo:
- Ang mga sumunod na implementasyon ay dapat sumunod sa pagtutukoy ng ECMA-262 sa pagtutukoy ng lahat ng
- Ang mga sumunod na implementasyon ay dapat sumunod sa pamantayan ng Unicode character standard (UCS)
- Ang mga sumunod na implementasyon ay maaaring magdagdag ng
- Ang mga sumunod na implementasyon ay maaaring suportahan ang
Ang lahat ng mga implementasyon ng ECMAScript ay dapat sumunod sa mga itaas na pamantayan.
3. Suporta ng ECMAScript sa mga Web Browser
Ang Netscape Navigator 3.0 na may JavaScript 1.1 ay inilabas noong 1996. Pagkatapos, ang patakaran ng JavaScript 1.1 ay isinumite bilang isang pahiling ng bagong pamantayan sa EMCA. Sa pagiging tagumpay ng kasikatan ng JavaScript, ang Netscape ay masaya na nagsimulang magbuo ng 1.2 bersyon. Subalit may isang problema, ang ECMA ay hindi tinanggap ang pahiling ng Netscape. Pagkatapos inilabas ang Netscape Navigator 3.0, inilabas din ng Microsoft ang IE 3.0. Ang bersyon ng IE na ito ay may JScript 1.0 (ang pangalang sariling implementasyon ng Microsoft sa JavaScript), na orihinal na pinaplanang magkapareho sa JavaScript 1.1. Subalit, dahil sa kulang na dokumentasyon at ilang hindi tamang kaparehong katangian, ang JScript 1.0 ay lubhang hindi nakapagtagumpay kaysa sa JavaScript 1.1.
Bago ang unang edisyon ng ECMA-262 ay naitala, ang paglabas ng Netscape Navigator 4.0 na may JavaScript 1.2 ay noong 1997. Sa huling bahagi ng taon, ang standard na ECMA-262 ay tinanggap at naging standard. Kaya, ang JavaScript 1.2 ay hindi naayon sa unang edisyon ng ECMAScript, kahit na ang ECMAScript ay dapat naging batay sa JavaScript 1.1.
Ang susunod na hakbang ng JScript ay ang pagdagdag ng JScript 3.0 sa IE 4.0 (ang 2.0 edition ay pinapalabas kasama ang IIS 3.0, ngunit hindi ito naipasok sa browser). Maraming inaangkin ng Microsoft na ang JScript 3.0 ay ang unang tunay na script language na sumusunod sa ECMA standard. Sa panahong iyon, ang ECMA-262 ay hindi pa nakatapos ng finalisasyon, kaya ang JScript 3.0 ay nagkamit ng parehong kalagayan ng JavaScript 1.2 - ito ay hindi pa sumusunod sa final na ECMAScript standard.
Pinili ng Netscape na i-upgrade ang kanyang implementasyon ng JavaScript sa Netscape Navigator 4.06. Ang JavaScript 1.3 ay nagpatunay na ganap na sumusunod ang Netscape sa ECMAScript na unang edisyon. Naidagdag ng Netscape ang suporta sa Unicode standard, at pinanatili ang lahat ng mga bagay ang mga bagong katangian na ipinakilala sa JavaScript 1.2, at naging platform independent.
Nang ipinalabas ng Netscape ang kanyang pinagmulan na kodigo bilang proyekto ng Mozilla, ang plano ay para mapasok sa Netscape Navigator 5.0 ang JavaScript 1.4. Gayunpaman, isang mapanghimagsik na desisyon - na buong mula magsisimula ang pagbabago ng kodigo ng Netscape, ay nasira ang gawaing ito. Ang JavaScript 1.4 ay inilabas lamang bilang script language sa server para sa Netscape Enterprise Server, at hindi na ito naipasok sa mga browser sa hinaharap.
Ngayon, lahat ng pangunahing Web browser ay sumusunod sa ECMA-262 Third Edition.
下面的表格列出了大部分流行的 Web 浏览器中的 ECMAScript 支持:
Browser | DOM Kompatibilidad |
---|---|
Netscape Navigator 2.0 | - |
Netscape Navigator 3.0 | - |
Netscape Navigator 4.0 - 4.05 | - |
Netscape Navigator 4.06 - 4.79 | 版 1 |
Netscape 6.0+ (Mozilla 0.6.0+) | 版 3 |
Internet Explorer 3.0 | - |
Internet Explorer 4.0 | - |
Internet Explorer 5.0 | 版 1 |
Internet Explorer 5.5+ | 版 3 |
Opera 6.0 - 7.1 | 版 2 |
Opera 7.2+ | 版 3 |
Safari 1.0+/Konqueror ~ 2.0+ | 版 3 |
DOM
DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物。请考虑下面的 HTML 页面:
<html> <head> <title>Sample Page</title> </head> <body> <p>hello world!</p> </body> </html>
这段代码可以用 DOM 绘制成一个节点层次图:

DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点。
1. 为什么 DOM 必不可少
自从 IE 4.0 和 Netscape Navigator 4.0 开始支持不同形态的动态 HTML(DHTML),开发者首次能够在不重载网页的情况下修改它的外观和内容。这是 Web 技术的一大飞跃,不过也带来了巨大的问题。Netscape 和微软各自开发自己的 DHTML,从而结束了 Web 开发者只编写一个 HTML 页面就可以在所有浏览器中访问的时期。
业界决定必须要做点什么以保持 Web 的跨平台特性,他们担心如果放任 Netscape 和微软公司这样做,Web 必将分化为两个独立的部分,每一部分只适用于特定的浏览器。因此,负责指定 Web 通信标准的团体 W3C(World Wide Web Consortium)就开始制定 DOM。
2. DOM 的各个级别
DOM Level 1 ay ipinakilala ng W3C noong Oktubre 1998. Ito ay binubuo ng dalawang modul, na DOM Core at DOM HTML. Ang unang isa ay nagbibigay ng isang estraktura ng dokumento na nakabase sa XML upang makapasok at makapagpapatrabaho sa anumang bahagi ng dokumento; ang ikalawang isa ay nagdagdag ng mga bagay na natatanging sa HTML at mga pamamaraan, sa gayon ay nagpalawak ng DOM Core.
Tandaan, ang DOM ay hindi lamang eksklusibo sa JavaScript, sa katunayan, maraming iba pang mga wika ang nagsasapat ito. Gayunpaman, ang DOM sa mga web browser ay naimplemento sa ECMAScript, at ngayon ay isang malaking bahagi ng wika na JavaScript.
DOM Level 1 ay isang layunin lamang, ito ay pagpaplano ng estraktura ng dokumento, ngunit ang layunin ng DOM Level 2 ay mas malawak. Ang pagpapalawak ng orihinal na DOM ay nagdagdag ng suporta sa mga kaganapan ng mouse at user interface (may malaking suporta ang DHTML dito), saklaw, paglalakbay (mga paraan na mababagalin sa DOM dokumento) at suporta sa CSS (stacked style sheets) sa pamamagitan ng object interface. Ang orihinal na DOM Core na ipinakilala sa Level 1 ay nagdagdag din ng suporta sa XML namespace.
DOM Level 2 ay nagbigay ng ilang bagong modulong DOM na ginamit para sa paggamit ng bagong uri ng interface:
- DOM view - naglalarawan ng pagsubaybay sa iba't ibang mga view ng dokumento (ito ay tumutukoy sa dokumento bago at pagkatapos ng pag-estilo ng CSS)
- DOM kaganapan - naglalarawan ng mga interface para sa mga kaganapan
- DOM estilo - naglalarawan ng mga interface para sa paggamit ng mga estilo na nakabase sa CSS
- DOM paglalakbay at saklaw - naglalarawan ng mga interface para sa paglalakbay at pagpapatakbo sa dokumentong puno
DOM Level 3 ay nagbigay ng paraan upang magkaroon ng isang pinag-isang paraan para sa paglalaan at pagpapanatili ng dokumento (kasama sa bagong modulong DOM Load and Save) at ng paraan para sa pagtibay ng dokumento (DOM Validation), sa gayon ay nagbigay ng karagdagang pagpapalawak sa DOM. Sa Level 3, ang DOM Core ay napalawak upang suportahan ang lahat ng mga katangian ng XML 1.0, kasama ang XML Infoset, XPath at XML Base.
Sa pag-aaral ng DOM, maaring mayroong mga tao na binabanggit ang DOM Level 0. Babalikan, walang DOM Level 0 na standard, ito lamang ay isang pangkasaysayan na pagsisimula ng DOM (DOM Level 0 ay tumutukoy sa orihinal na DHTML na suportado ng IE 4.0 at Netscape Navigator 4.0).
3. iba pang DOM
Maliban sa DOM Core at DOM HTML, mayroon ding iba pang mga wika na nagpalabas ng kanilang sariling DOM Standard. Ang lahat ng mga DOM na ito ay nakabase sa XML, at bawat DOM ay nagdagdag ng mga natatanging pamamaraan at interface sa katutubong wika:
- Scalable Vector Graphics (SVG) 1.0
- Digital Markup Language (MathML) 1.0
- Synchronous Multimedia Integration Language (SMIL)
Mga paalala:Kung gusto mong mabago pang kaalaman, pumunta sa CodeW3C Tuturuan ng SMIL at Tuturuan ng SVG.
Gayundin, ang ibang mga wika ay nagpalabas ng kanilang sariling paggawa ng DOM, tulad ng XML User Interface Language (XUL) ng Mozilla. Gayunman, lamang ang mga nabanggit na wika ang pinapangalagaan na pamantayan ng W3C.
4. Suporta ng DOM sa mga Web Browser
DOM ay isang pamantayan bago pa ito ay nagsimulang maipatupad ng mga web browser. Ang unang pagsubok ng IE sa DOM ay sa bersyon 5.0, ngunit totoong nagkaroon ng tunay na suporta sa DOM pagkatapos ng bersyon 5.5, kung saan ang IE 5.5 ay nagpatupad ng DOM Level 1. Mula noon, ang IE ay hindi naglagay ng bagong mga pagbabago sa DOM.
Netscape ay nagsimula ng suporta sa DOM hanggang sa Netscape 6 (Mozilla 0.6.0). Sa kasalukuyan, ang Mozilla ay may pinakamahusay na suporta sa DOM, nagpatupad ng buong Level 1, halos lahat ng Level 2, at bahagi ng Level 3. (Ang layunin ng grupo ng paggawa ng Mozilla ay magtayo ng isang browser na 100% na kompatibo sa pamantayan, at kanilang ginawad ang kanilang paggawa.).
Opera ay nagsimula ng suporta sa DOM hanggang sa 7.0 na bersyon, pati na rin ang Safari ay nagpatupad ng karamihan ng DOM Level 1. Halos lahat ng kanila ay nasa parehong antas ng IE 5.5, at sa ilang mga kaso, kahit na mas mataas pa sa IE 5.5. Gayunman, sa pagtutulungan sa DOM, ang lahat ng browser ay lubos na nauna sa Mozilla. Ang tabla sa ibaba ay naglilista ng suporta ng pangkaraniwang browser sa DOM.
Browser | DOM Kompatibilidad |
---|---|
Netscape Navigator 1.0 - 4.x | - |
Netscape 6.0+ (Mozilla 0.6.0+) | Level 1, Level 2, Level 3 (bahagi lamang) |
IE 2.0 - 4.x | - |
IE 5.0 | Level 1 (pinakamaliit) |
IE 5.5+ | Level 1 (halos lahat) |
Opera 1.0 - 6.0 | - |
Opera 7.0+ | Level 1 (halos lahat), Level 2 (bahagi lamang) |
Safari 1.0+/Konqueror ~ 2.0+ | Level 1 |
Mga paalala:Kung gusto mong mas mabuti ang pag-aaral ng kaalaman sa DOM, pumunta sa CodeW3C Tuturuan ng HTML DOM at Tuturuan ng XML DOM.
BOM
IE 3.0 at Netscape Navigator 3.0 ay nagbigay ng isang katangian - BOM (Browser Object Model), na maaaring ma-access at ma-operate ang window ng browser. Sa pamamagitan ng BOM, ang mga developer ay maaaring ilipat ang window, baguhin ang teksto sa status bar at gumawa ng iba pang aksyon na hindi direktang kaugnay sa nilalaman ng pahina. Ang natatanging at madalas na pinag-aalala ng BOM ay, ito ay bahagi lamang ng JavaScript, walang anumang kaugnayang standard.
Ang BOM ay pangunahing nagpapatakbo ng window at frame ng browser, ngunit karaniwang ang mga browser-specific JavaScript extension ay tinuturing na bahagi ng BOM. Ang mga kaugnayang ito kasama ang:
- Magbukas ng bagong window ng browser
- Ililipat, isasara ang window ng browser at ayusin ang laki ng window
- Nagbibigay ng detalyadong impormasyon ng web browser ang object na location
- Nagbibigay ng detalyadong impormasyon ng resolucion ng screen ng user ang object na screen
- Suporta sa cookie
- IE ay pinagsama ang BOM, pinagdagang ActiveXObject klase, na maikabubuti ng JavaScript upang maunawaan ang ActiveX object
Dahil walang kaugnayang BOM standard, ang bawat browser ay may sariling BOM implementation. May ilang de facto standard, tulad ng may isang window object at navigation object, ngunit ang bawat browser ay maaaring magdefinir ng sariling attribute at method para sa mga object na ito o iba pang object.
Rererehan:
- Nakaraang pahina Kasaysayan ng JavaScript
- Susunod na pahina Gramatika ng ECMAScript