Bài giảng Phát triển ứng dụng Web. Web Programming - Chương 7: Javascript. DOM

Tổng quan về DOM – HTML

• HTML DOM = HTML Document Object Model

• Xem trang web như một cây gồm nhiều nút

(node)

• Mỗi nút là một thành phần (tag HTML, thuộc

tính, nội dung của tag)

• DOM định nghĩa một cách để truy xuất và điều

khiển các thành phần trong 1 trang web

Mỗi đối tượng DOM đều có danh sách thuộc

tính (Properties) và danh sách các phương

thức (Method) tương ứng.

• objectName.propertyName= value

• Vídụ: document.bgColor= “blue”;

• objectName.methodName()

• Vídụ: window.focus();

pdf 55 trang kimcuc 9180
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển ứng dụng Web. Web Programming - Chương 7: Javascript. DOM", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Phát triển ứng dụng Web. Web Programming - Chương 7: Javascript. DOM

Bài giảng Phát triển ứng dụng Web. Web Programming - Chương 7: Javascript. DOM
1Javascript - DOM
Luong Tran Hy Hien
2Nội dung
1. Tổng quan về DOM – HTML
2. Một số đối tượng
3. Làm việc với document - DOM
4. Xử lý sự kiện (event)
5. Một số ví dụ
31. Tổng quan về DOM – HTML
• HTML DOM = HTML Document Object Model
• Xem trang web như một cây gồm nhiều nút
(node)
• Mỗi nút là một thành phần (tag HTML, thuộc
tính, nội dung của tag)
• DOM định nghĩa một cách để truy xuất và điều
khiển các thành phần trong 1 trang web
41. Tổng quan về DOM – HTML
51. Tổng quan về DOM – HTML
61. Tổng quan về DOM – HTML
71. Tổng quan về DOM – HTML
• Mỗi đối tượng DOM đều có danh sách thuộc
tính (Properties) và danh sách các phương
thức (Method) tương ứng.
• objectName.propertyName= value
• Vídụ: document.bgColor= “blue”;
• objectName.methodName()
• Vídụ: window.focus();
82. Một số đối tượng trong DOM
1. window
2. location
3. history
4. navigator
5. document
6. image
7. form
8. element
2.1. DOM - window
• Là thể hiện của đối tượng cửa sổ trình
duyệt
• Tồn tại khi mở 1 tài liệu HTML
• Sử dụng để truy cập thông tin window
• Điều khiển các sự kiện xảy ra trong
window
• Nếu tài liệu định nghĩa nhiều frame,
browser tạo 1 window object cha và các
window object con cho từng frame
9
10
2.1. DOM - window
11
2.2. DOM - location
Chứa thông tin 
hiện tại của URL
12
2.3. DOM - history
Cung cấp danh sách các URL 
đã được duyệt bởi người sử dụng.
13
2.4. DOM - navigator
Cung cấp thông tin 
về trình duyệt.
14
2.5. DOM - document
• Biểu diễn cho toàn bộ các thành phần
trong 1 tài liệu HTML
• Dùng để lấy thông tin về tài liệu, các
thành phần HTML và xử lý sự kiện
15
2.5. DOM - document
16
2.6. DOM – image
• Truy xuất đến tag trên trang web
• Có thể truy xuất thông qua:
– document.images[index]
– document.images[“ImageName”]
– document.ImageName
• Một số thuộc tính của Image Obj
– alt, border, classname, title,
– width, height, hspace, vspace, 
– id, name, src, lowsrc, longDesc, 
– isMap, complete
17
2.7. DOM – form
• Dùng để truy xuất đến tag trên trang web
• Có thể truy xuất thông qua
– document.forms[index]
– document.forms[“FormName”]
– document.FormName
• Một số thuộc tính
– action, method, id, name, target
– classname, title, language, dir
– elements[ ]
• Một số phương thức
– reset( ), submit( )
18
2.8. DOM – element
• Tương ứng với form field.
• Cách truy xuất 
document.formName.controlName
-------------------------------------------------------------------------------
document.searchForm.entry
document.searchForm.elements[0]
document.forms[“searchForm”].elements[“entry”]
document.forms[“searchForm”].entry
19
3. Làm việc với document - DOM
Biểu diễn nội dung tài liệu theo cấu trúc cây
20
3. Làm việc với document - DOM
Cấu trúc cây của tài liệu
21
3. Làm việc với document - DOM
22
3. Làm việc với document - DOM
• getElementById(“id1”): trả về node có giá trị thuộc
tính id = id1
• Ví dụ:
// 
// some text
// 
var node = document.getElementById(“id1”);
var nodeName = node.nodeName; // p
var nodeType = node.nodeType; // 1 
var nodeValue = node.nodeValue; // null
var text = node.innerText; // some text
23
3. Làm việc với document - DOM
• getElementsByName(name1): trả về danh sách node 
có giá trị của thuộc tính name = name1
• Ví dụ:
var nodeList=document.getElementsByName(“name1”);
for(var i=0;i<nodeList.length;++i)
{
var nodeName= nodeList(i).nodeName;
var nodeType=nodeList(i).nodeType;
var nodeValue=nodeList.item(i).nodeValue;
}
Đối tượng Document - DOM
• getElementsByTagName (tagName)
Trả về danh sách node có NodeName = 
tagName
Ví dụ:
var nodeList= document.getElementsByTagName(“img”);
for(var i=0;i<nodeList.length;++i)
{
var nodeName = nodeList(i).nodeName;
var nodeType = nodeList(i).nodeType;
var nodeValue = nodeList.item(i).nodeValue;
}
25
3. Làm việc với document - DOM
• createElement(nodeName): tạo ra một node 
HTML mới tùy theo đối số nodeName
• Ví dụ:
var imgNode=document.createElement(“img”);
imgNode.src=“images/test.gif”;
//
26
3. Làm việc với document - DOM
• createTextNode(content): tạo ra một textnode 
mới với nội dung tùy theo đối số content
• Ví dụ:
var txtNode=document.createTextNode(“New text”);
var pNode=document.createElement(“p”);
pNode.appendChild(txtNode);
// New text 
27
3. Làm việc với document - DOM
• nodeName.appendChild(newNode): thêm 
node mới newNode vào cuối danh sách các 
node con của một node.
• Ví dụ:
// Some text 
var pNode=document.getElementById(“id1”);
var imgNode=document.createElement(“img”);
imgNode.src=“images/test.gif”;
pNode.appendChild(imgNode);
// 
// Some text 
//
28
3. Làm việc với document - DOM
• nodeName.insertBefore(newNode,childRef): 
chèn newNode vào trước childRef trong danh 
sách các node con của một node.
// 
//-----------------------------------------------------------------------
var pNode=document.getElementById(“id1”);
var firstChild=pNode.firstChild;
var newNode=document.createTextNode(“Some text”);
pNode.insertBefore(newNode,firstChild);
//-----------------------------------------------------------------------
// 
// Some text 
//
29
3. Làm việc với document - DOM
• nodeName.removeChild(child): xóa child
trong danh sách các node con của một node 
gọi phương thức, trả về node bị xóa.
// Hình ảnh
//-----------------------------------------------------------------------
var pNode=document.getElementById(“id1”);
if (pNode.hasChildNodes())
var rmNode=pNode.removeChild(pNode.lastChild);
//-----------------------------------------------------------------------
// 
// 
//
30
3. Làm việc với document - DOM
• replaceChild ( newChild, oldChild )
Thay thế node oldChild bằng node 
newChild trong danh sách các node con của 
node hiện hành
Ví dụ:
var replace = document.getElementById(“isReplaced”);
if (replace) 
{ 
var newNode = document.createElement("strong");
var newText = 
document.createTextNode("strongelement");
newNode.appendChild(newText);
replace.parentNode.replaceChild(newNode,replace); 
} 
31
3. Làm việc với document - DOM
• innerHTML
Chỉ định nội dung HTML bên trong một 
node.
Ví dụ:
//some text
var theElement = document.getElementById("para1");
theElement.innerHTML = “Some new text”;
// Kết quả :
// Some new text 
32
3. Làm việc với document - DOM
• innerText
Tương tự innerHTML, tuy nhiên bất kỳ nội 
dùng nào đưa vào cũng được xem như là 
text hơn là các thẻ HTML.
Ví dụ:
var theElement = document.getElementById("para1");
theElement.innerText = “Some new text”;
// Kết quả hiển thị trên trình duyệt 
// bên trong thẻ p: “Some new text” 
33
3. Làm việc với document - DOM
• setAttribute ( attributeName , value )
Chỉ định attribute của một node với giá trị là 
value.
Ví dụ:
Some text
var fontNode = document.getElementById(“font1”);
fontNode.setAttribute(“color”,”red”);
fontNode.setAttribute(“size”,”5”);
Some text
34
3. Làm việc với document - DOM
• getAttribute ( attributeName )
Lấy giá trị của một attribute trong node
Ví dụ:
var font1 = document.getElementById(“font1”);
alert(font1.getAttribute(“color”));
 removeAttribute ( attributeName )
Hủy một attribute trong node
Ví dụ:
font1.removeAttribute(“color”);
font1.removeAttribute(“size”);
35
3. Làm việc với document - DOM
• Thay đổi định dạng CSS của một node 
thông qua thuộc tính style
Ví dụ:
This is a text
var node = 
document.getElementById(“myParagraph”);
node.style.color = "green";
node.style.fontSize = "14";
node.style.backgroundColor = "yellow";
36
3. Làm việc với document - DOM
• Thay đổi định dạng css thông qua thuộc tính 
className
Ví dụ:
.look1 { color: black; background-color: yellow; 
font-style: normal; }
.look2 { background-color: orange; font-style: 
italic; }
this is my text 
var pNode = document.getElementById("p1");
pNode.className = "look2";
37
3. Làm việc với document - DOM
• Thay đổi tham chiếu đến file CSS
Ví dụ:
function changeSkin()
{
document.getElementById("myStyle").href = 
"css/style2.css";
}
<link id="myStyle" rel="stylesheet" 
type="text/css" href="css/style1.css" />
Hello world
<input type="button" onclick="changeSkin()" 
value="change skin" />
38
4. Xử lý sự kiện
1. Event Object
2. Event Handle
3. Xử lý sự kiện
39
4.1. Event Object
• Events là các sự kiện xảy ra trên trang
Web
• Do người dùng hoặc do hệ thống tạo ra
• Mỗi sự kiện sẽ liên quan đến một event
object
• Event cung cấp các thông tin
– Loại event
– Vị trí con trỏ tại thời điềm xảy ra sự kiện
• Ví dụ: Xem Slide sau
40
4.1. Event Object
41
4.2. Event Handle
• Giúp cho người lập trình bắt và xử lý các sự 
kiện của các đối tượng trong trang web.
• Cú pháp
• Ví dụ:
<INPUT TYPE=“button” NAME=“docode” 
onclick="DoOnClick();”>
<INPUT TYPE="button” NAME=“Button1”
VALUE="Open Sesame!”
onClick=”window.open('mydoc.html','newWin')”>
42
4.2. Event Handle
event event
onabort onload
onblur onmousedown
onchange onmousemove
onclick onmouseout
onerror onmouseover
onfocus onmouseup
onkeydown onreset
onkeyup onresize
onselect onsubmit
onunload
43
4.3. Xử lý sự kiện
• Cú pháp
<TAG eventHandler= "JavaScript 
Code">
• Ví dụ:
<INPUT TYPE="button” NAME="Button1” 
VALUE="OpenSesame!”
onClick="window.open('mydoc.html','newWin');">
• Lưu ý: Dấu “” và ‘’
44
4.3. Xử lý sự kiện
Ví dụ
45
4.3. Xử lý sự kiện
46
5. Một số ví dụ
function compute(frm)
{
var x = frm.expr.value;
result.innerHTML= x*x;
}
X = 
X * X = 
47
5. Một số ví dụ
48
5. Một số ví dụ
• Ví dụ: onFocus – onBlur
• Xảy ra khi một thành phần HTML bị focus 
(onFocus) và mất focus (onBlur)
• Ví dụ:
<INPUT type=“text” name=“myTextbox” 
onblur=“document.bgColor=‘aqua’;” 
onfocus=“document.bgColor=‘dimgray’;” >
49
5. Một số ví dụ
Ví dụ: Dynamic Table
• Viết trang web cho phép tạo table có số 
dòng, số cột do người dùng nhập vào.
Ví dụ: Dynamic Table
 12 
 13 
 21 
 22 
Table
Tr
Tr
Td
Td
Td
Td
body
Ví dụ:
 12 
 13 
 21 
 22 
Table
Tr
Tr
Td
Td
Td
Td
TBody
body
Ví dụ: Dynamic Table
• Document.createElement() :Tạo một đối 
tượng thẻ DOM HTML
• Object.appendChild(): Thêm một đối tượng 
thẻ DOM HTML như là nút con.
Ví dụ: Dynamic Table
function CreateTable(divTable)
{ 
var tagTable = document.createElement("table");
tagTable.border = 1;
var tagTBody = document.createElement("tbody");
tagTable.appendChild(tagTBody);
var nDong = txtSoDong.value;
var nCot = txtSoCot.value;
for (i=0; i<nDong; i++)
{
var tagTR = document.createElement("tr");
for (j=0; j<nCot; j++)
{
var tagTD = document.createElement("td");
var textNode = document.createTextNode(i+""+j);
tagTD.appendChild(textNode);
tagTR.appendChild(tagTD);
}
tagTBody.appendChild(tagTR);
}
divTable.appendChild(tagTable);
}
Tham khảo
• Website W3school
• Slide lập trình Web, ĐH KHTN, 2007
55

File đính kèm:

  • pdfbai_giang_phat_trien_ung_dung_web_web_programming_chuong_7_j.pdf