2 Javascript PDF
2 Javascript PDF
ចាប់ផ្តើម
Javascript &
DOM Scripting
ិ សាស្រសត
អ្នកនឹងសិកាពីមេម ៀនតំបូង វធ ី ថ្ីៗ
ម
ិ សាស្រសត
និងវធ ី ម្រើជាញឹកញាប់កុងកា
ន បមងកតមវបសាយ
ើ
Content
Content ................................................................................................................................................... 1
Module 1: Introduction to JavaScript ..................................................................................................... 6
What is JavaScript? ............................................................................................................................. 6
Function of JavaScript ......................................................................................................................... 6
JavaScript History ................................................................................................................................ 6
JavaScript Creation.............................................................................................................................. 6
Internal JavaScript ........................................................................................................................... 7
External JavaScript .......................................................................................................................... 7
<noscript/> tag .................................................................................................................................... 7
Module 2: JavaScript Basics .................................................................................................................... 8
Generalization of JavaScript................................................................................................................ 8
Comments ........................................................................................................................................... 8
Single Line Comments ..................................................................................................................... 8
Multiline Commnets ....................................................................................................................... 8
Using Variables.................................................................................................................................... 8
Data Type ............................................................................................................................................ 9
Data Type Conversion ....................................................................................................................... 10
Number Conversion ...................................................................................................................... 10
String Conversion .......................................................................................................................... 10
Boolean Conversion ...................................................................................................................... 11
Operator............................................................................................................................................ 11
Arithmetic Operator...................................................................................................................... 11
Comparative Operator .................................................................................................................. 12
Logical Operator............................................................................................................................ 13
Control Flow Statements .................................................................................................................. 14
If Statements ................................................................................................................................. 14
Switch Statements ........................................................................................................................ 14
Iterative or Loop Statements ............................................................................................................ 15
While Statement ........................................................................................................................... 15
Do While Statement ...................................................................................................................... 15
For Statement ............................................................................................................................... 16
3 Content BAYON HOSTING
Function of JavaScript
JavaScript ៖
JavaScript History
Netscape user
JavaScript Creation
javascript HTML Text editor
Notepad, Dreamweaver, Frontpage…។
7 Module 1: Introduction to JavaScript BAYON HOSTING
Internal JavaScript
JavaScript file file HTML
<script/> tag javascript ។
Syntax
<script type=”text/javascript”>
statements;
</script>
External JavaScript
javascript file file HTML។ link javascript
html file <script/> tag src attribute file
javascript។ file javascript save extension .js ឧ. global.js។
Syntax
<script src=”path”></script>
<noscript/> tag
tag HTML User Browser
support disable javascript។
<noscript>
Your Browser Not Support JavaScript or JavaScript was
disabled.
</noscript>
8 Module 2: JavaScript Basics BAYON HOSTING
Generalization of JavaScript
JavaScript
Comments
javascript programmer។
comments browser ។
Comments ៖
Syntax
// comments
Multiline Commnets
Comment
Syntax
/* Comments
Comments
Comments
Comments */
Using Variables
Variable reference
Object ។
9 Module 2: JavaScript Basics BAYON HOSTING
Declaration
variable var statement។
។
syntax
var variableName;
var variableName=value;
statement commas(,)
variable ។
var variable1,variable2,variable3;
var variable1=value1,variable2=value2;
syntax
variable1=value1;
ឧ ៖
Naming Convention
variable , underscore(_), Dollar Sign($)។
, underscore(_), dollar sign($),
variable keyword reserved word JavaScript
Data Type
។
variable keyword typeof syntax
៖
JavaScript ៖
10 Module 2: JavaScript Basics BAYON HOSTING
Undefined
variable
។
Boolean
true false
។
String
។
Number
Number Conversion
៖
“34” 34 34 34 34
“3+5” 3 3 NaN 8
String Conversion
៖
10 10 10 1010 12 a
14 14 14 1110 16 e
Boolean Conversion
Boolean។
“” false
“Letter” true
undefined false
0 false
14 true
oObject true
Operator
symbol ។
Arithmetic Operator
។
ឧ variables ៖
var iNum1 = 9;
var iNum2 = 2;
var vResult;
12 Module 2: JavaScript Basics BAYON HOSTING
- iNum1 - iNum2 7
* iNum1 * iNum2 18
% iNum1 % iNum2 1
++ vResult=5; 5
vResult++;
vResult=5; 6
++vResult;
-- vResult=5 5
vResult--;
vResult=5; 4
--vResult;
+= vResult=5; 9
vResult+=4;
-= vResult=5; 1
vResult-=4;
Comparative Operator
operator ។
boolean
ឧ variables ៖
var iNum1 = 9;
var iNum2 = 2;
var vResult;
13 Module 2: JavaScript Basics BAYON HOSTING
Logical Operator
true false ។
(&&) operand (||)
operand ។ oprand operand true
false។
ឧ variables ៖
var iNum1 = 9;
var iNum2 = 2;
var vResult;
! !(iNum1<iNum2) true
14 Module 2: JavaScript Basics BAYON HOSTING
If Statements
statement
statements ។
Syntax
if(expression){
}
Syntax
if(expression){
statements;
}else if(expression){
statements;
}else if(expression){
statements;
}else{
statements;
}
Switch Statements
វាវាយតំ លលលលើ expression មួ យ ល ើយលោតលៅកាន់ statement ដែលបាន label ជាមួ យ
case clause ដែលត្តូវគ្នានឹងតំ លលរបស់ expression ល ោះ។ លបើ គ្នាន case ណាមួ យត្តូវគ្នាលេ ល ោះ
Syntax:
switch(expression){
break;
break;
...
break;
default: default_statement
While Statement
syntax:
while(expression){
statements;
ឧទា រណ្៍៖
var i=0;
while(i<10){
i++;
Do While Statement
syntax:
do{
statements;
} while(expression);
ឧទា រណ្៍ ១៖
16 Module 2: JavaScript Basics BAYON HOSTING
var i=0;
do{
i++;
For Statement
Syntax:
for(initialization,condition,increment_statement){
statements;
}
ឧ ៖
for(i=1;i<=31;i++){
document.write(“Number : ”+ i);
}
ឧ ៖
for(i=0;i<10;i++){
if(i==5)break;
document.write(“Number : “+ “<br/>”);
}
Continue
statement loop ។
ឧ ៖
for(i=0;i<10;i++){
if(i==5)continue;
document.write(“Number : “+ “<br/>”);
}
17 Module 2: JavaScript Basics BAYON HOSTING
Label
loop ។ loop
break continue loop ។
Syntax
label_Name:
loop
Functions
Syntax:
function functionName(){
statements
ឧទា រណ្៏៖
function showMessage(){
alert(“Hello world”);
Using Arguments
Syntax
function functionName(arg0,arg1,.....,argN){
statements;
ឧទា រណ្៏៖
function showMessage(sMessage){
alert(sMessage);
18 Module 2: JavaScript Basics BAYON HOSTING
Using return
return function ។
Syntax
function functionName(arg0,arg1,.....,argN){
statements;
return value;
ឧទា រណ្៏៖
function sum(fOperand1,fOperand2){
return (fOperand1+fOperand2);
Creating an Array
array ៖
Empty Array
array ។ new Array() [ ]។
Example
var arrStudent = new Array();
var arrColor = [];
Example
ឧ ៖
alert(oStudent[0]); // Dara
oStudent[0]=”Thea”;
alert(oStudent[0]);// Thea
៖
Array 4294967295។
ឧ ៖
var arrStudent = new Array(15);
alert(oArray.length);// Output: 15
oInfo=[2,”Thera”,”Male”];
alert(oArray.length); //output: 3
String
String ។ method
String search, replace, ascii code,
case។
Property in String
String array property length
string ។
Methods in String
String methods ៖
string concat( value, ...) លបាោះនូ វតំ លលលន ការបនត នូវ String លែើម នឹ ង value
end ។
22 Module 3: Array and String BAYON HOSTING
លបាោះនូ វ Array
array split( delimiter[, limit])
delimiter។
timestamp
៖ Timestamp ១៩៧០ ១ ០
។
datestring
new Date(datestring);
៖ javaScript ៖
argument
៖ Range argument ៖
Year : 4-digit
Month : 0-11
Day : 1-31
Hours : 0-23
Minutes : 0-59
Seconds : 0-59
Ms : 0-999
methods [UTC]
។ ។
number get[UTC]Date( ) ១ ៣១
number get[UTC]Day( ) ០ ៦
number get[UTC]FullYear( ) ៤
number get[UTC]Hours( ) ០ ២៣
number get[UTC]Milliseconds( ) ០ ៩៩៩
number get[UTC]Minutes( ) ០ ៥៩
number get[UTC]Month( ) ០( ) ១១( )
number get[UTC]Seconds( ) ០ ៥៩
១៩៧០ ១ ០
number getTime( )
(UTC)
Date Object។
number getTimezoneOffset( )
Greenwich ។
getFullYear()
number getYear( ) ១៩០០ ១៩៩៩ ២
។
Date Object
number set[UTC]Date( day_of_month)
timestamp Date ។
Static Method
Date methods
instance date class ។
Math Object
ជា Object ដែលមាននូ វ methods និង properties សំខាន់ ៗជាលត្ចើនសំរាប់ លត្បើ ក្សុងការ
ា
Math Properties
Table: Math Properties
Property ការពិពណ្៌
Math.SQRT1_2 តំ លលលន
Math.SQRT2 តំ លលលន
Math Methods
Table: Math Methods
Methods ការពិពណ្៌
window object
window frame។
name
window.open() frame name attribute។
navigator naivagator object
opener window object window
parent window object window frame ។
screen screen object
self window object
status bar browser
status
status
top window obejct window object ។
window window object
InputBox message
prompt( message, default) Textbox default ។ string
user ។
void resizeBy( dw, dh) window ។
window
void resizeTo( width, height)
pixel។
scroll browser window x
void scroll( x, y)
y។
scroll browser window
void scrollBy( dx, dy)
dx dy។
scroll browser window x
void scrollTo( x, y)
y។
intervalId Interval ។
execute code interval
setInterval( code, interval)
Interval
clearInterval(InvervalID);
timeoutId timeout ។
execute code timeout
setTimeout( code, delay) ។
timeoutId
clearTimeout(timeoutID);
history object
object history page
។ history methods ៖
screen object
object properties
computer display screen resolution color depth ។
location object
object URL load window
URL ៖
location properties ៖
location methods ៖
32 Module 5: Browser Object Model BAYON HOSTING
navigator object
document object
Document Object object properties methods
Page Link, , ,
cookie ។ access collection form, image
។
appendChild(node
Node Node childNodes
)
removeChild(node
Node node childNodes
)
replaceChild(new
Node oldnode childNodes newnode
node, oldnode)
insertBefore(new
Node newnode refnode childNodes
node,refnode)
៖
35 Module 6: Document Object Model BAYON HOSTING
ឧ HTML ៖
<body>
My First Content
<div>
Hello
<i>
World
</i>
</div>
My First Paragraph
<p>
36 Module 6: Document Object Model BAYON HOSTING
Welcome
</p>
</body>
</html>
node DOM ៖
By Hierarchy
ឧ HTML ៖
<html>
<head>
<title> DOM </title>
</head>
<body>
</body>
</html>
Internet Explorer
37 Module 6: Document Object Model BAYON HOSTING
var oHTML=document.childNodes[0];
var oHTML=document.documentElement;
var oHTML=document.firstChild;
var oHTML=document.lastChild;
head element ៖
1: var oBody=oHTML.firstChild;
2: var oBody=oHTML.childNodes[0];
3: var oBody=oHTML.childNodes.item(0);
body element ៖
1: var oBody=document.body;
2: var oBody=oHTML.lastChild;
3: var oBody=oHTML.childNodes[0];
4: var oBody=oHTML.childNodes.item(1);
Syntax:
var oElement=document.getElementById(“elementID”)
ឧ HTML ៖
<html>
38 Module 6: Document Object Model BAYON HOSTING
<head>
<title> DOM </title>
</head>
<body>
<h1 id=”headerText”>Web Content </h1>
<p id=”content”>Welcome To My Site </p>
</body>
</html>
var oPContent=document.getElementById(“content”);
h1 element object៖
var oH1HeaderText=document.getElementById(“headerText”);
Radio Implementation
<form>
<input type="radio" name="radAge" value="14" checked="checked"
/>14<br />
<input type="radio" name="radAge" value="15" />15<br />
<input type="radio" name="radAge" value="16" />16<br />
<input type="radio" name="radAge" value="17" />17<br />
<input type="button" onclick="showValue()" value="ShowAge" />
</form>
<script>
function showValue(){
var oAge=document.getElementsByName("radAge");
for(i=0;i<oAge.length;i++){
if(oAge.item(i).checked==true){
alert(oAge.item(i).value);
}
}
}
</script>
Checkbox Implementation
39 Module 6: Document Object Model BAYON HOSTING
<form>
<input type="checkbox" value="1" name="chkNumber" />1<br />
<input type="checkbox" value="2" name="chkNumber" />2<br />
<input type="checkbox" value="3" name="chkNumber" />3<br />
<input type="button" value="Get Number" onclick="getNumber()"
/>
</form>
<script type="text/javascript">
var aNumber=new Array();
var oChkNumber=document.getElementsByName("chkNumber");
function getNumber(){
for(i=0;i<oChkNumber.length;i++){
if(oChkNumber.item(i).checked==true) {
aNumber.push(oChkNumber.item(i).value);
}
}
alert(aNumber);
}
</script>
Syntax
array oElementObject.getElementByTagName(“tagName”);
ឧ ៖
element object tag p tag
Id content array aPContents
...
<div id="content">
<h2> First Article </h2>
<p>First Text</p>
<h2> Second Article </h2>
<p>Third Text</p>
<h2> Third Article </h2>
<p>Third Text</p>
</div>
...
var oContent = document.getElementById("content");
var aPContents=oContent.getElementsByTagName("p");
alert(aPContents.length);// display 3
var oFirstP=aPContents[0];
Using document.all
ឧ HTML HTML
javascript ៖
var oAll=document.all;
for(i=0;i<oAll.length;i++){
document.writeln(oAll.item(i).nodeName);
}
៖
#comment
HTML
HEAD
TITLE
META
BODY
DIV
I
P
PRE
SCRIPT
node
41 Module 6: Document Object Model BAYON HOSTING
Syntax
ឧ ៖
ឧ HTML ៖
<html>
<head>
<title>Create a Complete Node</title>
</head>
<body>
</body>
</html>
<h1>Welcome</h1> body ៖
១ var oH1=document.createElement(“h1”);
២ var oTextNode=document.createTextNode(“Welcome”);
៣ oH1.appendChild(oTextNode);
៤ document.body.appendChild(oH1);
Syntax
oElementObject.removeChild(oChildElementObject)
oElementObject.replaceChild(oNewChild,oOldChild)
oElementObject.insertBefor(oNewChild,oReferenceChild)
ឧ HTML Code ៖
...
<body>
<ul id=”list”>
<li>Item 0</li>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
...
variable ១ ul object
២ array li ul ៖
oList.removeChild(oListItems[2]);
+
var oNewItem=document.createElement(“li”);
var oTextNode=document.createTextNode(“New Item”);
oNewItem.appendChild(oTextNode);
oList.replaceNode(oNewItem,oListItems[2]);
+ reference element
var oNewItem=document.createElement(“li”);
var oTextNode=document.createTextNode(“New Item”);
oNewItem.appendChild(oTextNode);
oList.insertBefore(oNewItem,oListItems[2]);
Using createDocumentFragement()
Node
node ។ node
refresh screen ។
documentFragement refresh ។
43 Module 6: Document Object Model BAYON HOSTING
Syntax:
ឧ ៖
var oFragment=document.createDocumentFragment();
for(i=0;i<15;i++){
var oNewNode=document.createElement("h1");
var oTextNode=document.createTextNode("Head " + i);
oNewNode.appendChild(oTextNode);
oFragment.appendChild(oNewNode);
}
document.body.appendChild(oFragment);
44 Module 7: Error Handling BAYON HOSTING
example : alert(“Welcome”;
script function
។ script function external javascript
។
example : window.showMyName();
javascript function
។
Handling Errors
។ JavaScript
៖ onerror event BOM
window object។ try...catch statement
runtime error exception។
ឧ ៖
<head>
<script type=”text/javascript”>
window.onerror=function(){
alert("got error");
45 Module 7: Error Handling BAYON HOSTING
return true;
}
incorrect;
</script>
<body onload=”incosistentMethod()”>
</body>
ឧ ៖
<head>
<script type=”text/javascript”>
window.onerror=function(sMessage, sUrl, sLine){
alert("An error occured:\n” + sMessage + “\nURL: ” +
sUrl + “\nLine: “ + sLine);
return true;
}
incorrect;
</script>
<body onload=”incosistentMethod()”>
</body>
try...catch statement
statement runtime
Syntax:
try{
statements;
} catch(exception){
statements_when_error_occur;
} [finally]{
statements_always_run.
}
try..caught statement
try ។
46 Module 7: Error Handling BAYON HOSTING
catch
catch។
finally
try ។
exception variable error object
។
- name string
- message string
ឧ ៖
try{
}catch(oException){
}
47 Module 8: Form Validation BAYON HOSTING
Form Basics
form elements ៖
Referencing to Form
reference form ៖
១ document.getElementById()
១ document.getElementById()
var oTextName = document.getElementById(“txtName”);
២ element collection form object reference
element name attribute៖
48 Module 8: Form Validation BAYON HOSTING
Form Vaidation
Submitting Forms
Submit
oForm.submit();
Submitting Once
form submit
៖
Select Element
List Boxes and Combo Boxes
Combo Box:
<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>
List Box:
JavaScript ៖
oListBox = document.getElementById(“selAge”);
oListBox = document.forms[“form1”].selAge;
oListBox = document.forms[0].selAge;
oListBox.options[1].text;
alert(oListBox.options[oListBox.selectedIndex].text);
Event Handlers/Listeners
ឧ ៖
var oButton=document.getElementById(“oButton”);
oButton.onclick=function(){
alert(“Clicked!”);
}
attachEvent(), detachEvent()
Syntax:
[Object].attachEvent(“oneventname”, fnHandler)
[Object].detachEvent(“oneventname”, fnHandler)
Example
var oButton=document.getElementById("oButton1");
var fnClicked=function(){
alert("OK!");
oButton.detachEvent(“onclick”,fnClicked);
oButton.attachEvent("onclick",fnClicked);
51 Module 10: Events BAYON HOSTING
addEventListener(), removeEventListener()
Syntax:
[Object].addEventListener(“eventname”,fnHandler,bCapture)
[Object].removeEventListener(“eventname”,fnHandler,bCapture)
Example
var oButton=document.getElementById("oButton1");
var fnClicked=function(){
alert("OK!");
oButton.detachEvent(“click”,fnClicked);
oButton.attachEvent("click",fnClicked,false);
function onload(){
statements;
}
52 Module 11: File System Object BAYON HOSTING
Syntax:
var oFSO = new ActiveXObject(“Scripting.FileSystemObject”);
Syntax ៖
Excercises
Exercise I
១ External JavaScript
២ variable
៣ InputBox, HTML
document.write()
InputBox ១(Operand1)
OK InputBox ២(Operand2)
OK
៖
55 Excercises BAYON HOSTING
Exercise 2
InputBox 3 Math, Physic, Khmer
Number
៖
0 50 : Fail.
50 100 : Passed.
៖
90 100 :A
80 90 :B
70 80 :C
60 70 :D
50 60 :E
0 50 :F
៖
Your Result
______________
Math : 60.5
Physic : 80.3
Khmer : 30.8
Average : 57.2
Result : Passed
Grade : E
56 Excercises BAYON HOSTING
Exercise 3
InputBox 3 Operand1, Operand2, Operator
Operand1, Operand2 Number Operator String
Operator +,-,*,/,%
Operand1 Operand2 Operator
៖
Calculation
________________
Operand1: 6
Operand2: 8
Operator: *
Result: 6 * 8 = 48
Operator ៖
Calculation
________________
Operand1: 6
Operand2: 8
Operator: efd
Result: 6 efd 8 = Invalid Operator
Exercise 4
Combo Box 1-31 ២ 1-12
៣ 1960-2009
Exercise 5
user
inputbox user
។
do while
Exercise 6
Input Box rows columns
rows columns Table ។
57 Excercises BAYON HOSTING
Cell
Exercise 7
Input Box lines ។
rows HTML ៖
ឧ line = 5
@@ @@@@ @@ @@@
@@@@ @@ @@ @@@
@@@@@ @ @ @
58 Excercises BAYON HOSTING
ឧ line=10
Exercise 8
TextBox ២
TextBox ១ user
TextBox ២ password
២
button ១ Log in
button ២ Clear
user Button log in Textbox
message “Pl compl t ll info m tion to lo in”។
username “ mini t to ” password
“ min123” message “username and password not correct, Please
ty in!”។
message “W lcom to A mini t to ”
user button clear textbox ។
59 Excercises BAYON HOSTING
Exercise 10
function ៥ +,-,*,/,=
textbox ៣ operand1, operand2, result
function
function ១ +,-,*,/ argument
operator
function ២ = Result
Exercise 11
Interface fieldset, legend, table, textarea,
input button, input text CSS។
array Student List
(text area witdth=130px height=150px)។
Add First List
Add Last List
Remove First List
Remove Last List
Clear
Asscending
Descending
Backup array array ។
60 Excercises BAYON HOSTING
do instanceof typeof
Reserved Words
8 : Backspace 9 : Tab
13 : Enter 16 : shift
17 : ctrl 18 : Alt
32 : Space 33 : PageUp
Reference
1. Professional JavaScript for Web Developers (Wrox) By Nicholas C. Zakas