Tại sao sử dụng JavaScript?• HTML: – Cung cấp các thẻ tạo khai báo đối tượng tài liệu nhưng không cung cấp khả năng quản lý hủy, thay đổi thuộc tính, triệu gọi phương thức chúng.. Javasc
Trang 1Lê Đình Thanh
Bộ môn Mạng và Truyền thông Máy tính
Khoa Công nghệ Thông tin Trường Đại học Công nghệ, ĐHQGHN E-mail: thanhld@vnu.edu.vn, thanhld.vnuh@gmail.com
Mobile: 0987.257.504
Bài giảng
PHÁT TRIỂN ỨNG DỤNG WEB
Trang 2Nội dung web
Bài 3
Trang 4JavaScript
Trang 5Tại sao sử dụng JavaScript?
• HTML:
– Cung cấp các thẻ tạo (khai báo) đối tượng tài liệu nhưng không cung cấp khả năng quản lý (hủy, thay đổi thuộc tính, triệu gọi phương thức) chúng
● Ví dụ: thẻ <input type = “button” …> tạo một nút bấm nhưng HTML không xử lý sự kiện khi nút được bấm (onclick).
• JavaScript (Scripts):
– Quản lý (tạo, hủy bỏ, thay đổi thuộc tính,
Trang 6• Được sử dụng rộng rãi.
• Tựa C.
– Khác C ở các điểm :
● Định kiểu không tường minh
● Khai báo biến bằng từ khóa var;
● Định nghĩa hàm bằng từ khóa function
● Khai báo mảng bằng Array()
• Sử dụng cùng HTML:
– Viết lệnh JavaScript trong cặp thẻ <script type=
“text/javascript”> </script> - phân đoạn Javascript.
Trang 7JavaScript: Khai báo, sử dụng biến
Trang 8JavaScript: Khai báo, sử dụng biến
Trang 9JavaScript: Khai báo, sử dụng hàm
Trang 10Javascript: Đối tượng
• Mọi thứ trong javascript đều là đối tượng
• Tuy nhiên, javascript không định
nghĩa lớp mà trực tiếp khai báo các đối tượng
Trang 11Khai báo đối tượng
• Khai báo đối tượng Object rồi gắn thuộc tính cho nó
Trang 12Khai báo đối tượng
• Khai báo sử dụng hàm tạo
function person(firstname, lastname, age, eyecolor){ this.firstname=firstname;
Trang 18• Thay thế xâu con
– str="Please visit Microsoft!"
var
Trang 19• str.substring(begin, end): Trả về xâu con bao gồm các ký tự có chỉ mục từ begin đến end-1 của xâu str
• str.substring(begin): Trả về xâu con bao gồm các ký tự có chỉ mục từ
begin đến hết của xâu str
• str.split(deli): Tách xâu str bởi sử
dụng xâu ngăn cách deli Trả về
Trang 22DOM – Document Object Model
Trang 23Giới thiệu về DOM
• Một trang web bao gồm một tập các đối tượng được tổ chức theo cấu trúc
– Đối tượng window đại diện cho cửa sổ/khung hiển thị trang web và được khai báo ngầm định Đối tượng
document đại diện cho chính nội dung trang web là một thuộc tính của
window.
Trang 24Giới thiệu về DOM
• HTML được dùng để khai báo các đối tượng (thuộc các lớp dựng sẵn)
• CSS được dùng để định nghĩa thuộc tính/kiểu hiển thị cho các đối tượng
• (java)script được dùng để quản lý
(tạo, hủy bỏ, thay đổi thuộc tính, triệu gọi phương thức) các đối
tượng, định nghĩa lớp mới.
Trang 25</html>
window
world
Trang 27DOM – Ví dụ 3
• ce parentNode == body
• ce childNodes [0] == “hello”
• ce childNodes [1] == “world”
• ce childNodes [2] == “2”
• ce firstChild == “hello”
• ce lastChild == “2”
• ce previousSibling == span
• ce nextSibling == select
• ce hasChildNodes() == true;
window
select
2
ce span
2
Trang 28Tất cả đối tượng: Thuộc tính
Trang 29Tất cả đối tượng: Thuộc tính
Trang 30Tất cả đối tượng: Thuộc tính
Trang 31Tất cả đối tượng: Thuộc tính
Trang 32Tất cả đối tượng: Thuộc tính
Trang 33Tất cả đối tượng: Thuộc tính
Trang 34Tất cả đối tượng: Thuộc tính
Trang 35Tất cả đối tượng: Thuộc tính
Trang 36Tất cả đối tượng: Phương thức
Trang 37Tất cả đối tượng: Phương thức
Trang 38Tất cả đối tượng: Phương thức
Trang 39Tất cả đối tượng: Phương thức
Trang 40Tất cả đối tượng: Phương thức
Trang 41Tất cả đối tượng: Phương thức
Trang 42Tất cả đối tượng: Phương thức
Trang 43Tất cả đối tượng: Phương thức
Trang 44Tất cả đối tượng: Phương thức
Trang 45Tất cả đối tượng: Phương thức
Trang 46Tất cả đối tượng: Phương thức
Trang 47Tất cả đối tượng: Phương thức
Trang 48Tất cả đối tượng: Phương thức
Trang 49Tất cả đối tượng: Con trỏ sự
kiện
• Con trỏ sự kiện
– được gọi khi sự kiện tương ứng xảy ra trên đối tượng
• Một số con trỏ sự kiện
– onClick – Kích chuột lên đối tượng
– onDblClick – Kích đúp chuột lên đối tượng
– onMouseOver – Di chuyển chuột trên đối tượng
– onMouseOut – Di chuyển chuột ra ngoài đối tượng
– onKeyUp – Nhả phím khi đối tượng đang được đặt làm tâm điểm
– OnKeyDown – Nhấn phím khi đối tượng đang được đặt tâm điểm
Trang 50Tất cả đối tượng: Con trỏ sự
Trang 51Đối tượng window : Thuộc tính
Trang 52Đối tượng window : Thuộc tính
Trang 53Đối tượng window : Phương thức
Trang 54Đối tượng window : Phương thức
Trang 55Đối tượng window : Phương thức
Trang 56Đối tượng window : Phương thức
Trang 57Đối tượng window
• Có thể truy cập các phương thức và thuộc tính của đối tượng window mà không cần tiền tố window.
Trang 58Đối tượng document : Thuộc tính
Trang 59Đối tượng document : Thuộc tính
Trang 60Đối tượng document : Phương thức
Trang 61Đối tượng document : Phương thức
Trang 62Đối tượng document : Phương thức
Trang 63Đối tượng document : Phương thức
Trang 64Đối tượng document : Phương thức
Trang 65Đối tượng document : Phương thức
Trang 66Đối tượng document : Phương thức
Trang 67Ví dụ: Hiển thị thông báo
Onload : Sự kiện được phát sinh khi tải trang lên
Trang 68Ví dụ: Thông báo hỏi sự đồng ý
Trang 69Ví dụ: Truy cập điều khiển text
Trang 70Ví dụ: Truy cập bảng
Trang 71<script language="javascript">
function dechuot(i) { document.getElementById("table1").rows[i].cells[0].backgroun d="cuocsong.gif" ;
}
function chuotRa(i) { document.getElementById("table1").rows[i].cells[0].backgroun d="cuocsong1.gif" ;
Trang 72Ví dụ: Mở cửa sổ mới
Trang 73Ví dụ: Mở cửa sổ mới – Nhập tham số
Trang 74Ví dụ: Mở cửa sổ con
Cửa sổ con trả về giá trị bằng returnValue
Trang 75Ví dụ: Thay nội dung frame
Trang 76Ví dụ: Thay nội dung iframe
Trang 77Ví dụ: Truy cập điều khiển và hàm javascript trong frame và iframe
Trang 78Ví dụ: Nhận phím được bấm
Trang 79Ví dụ: Đặt điều khiển được chọn
Trang 80Ví dụ: In trên web
Trang 81Vấn đề của trình duyệt
Trang 82Vấn đề
• Vấn đề: Một trang web (cùng nội dung, cùng
mã nguồn) có thể hiện (hiển thị và tương tác) khác nhau trên các trình duyệt khác nhau.
• Nguyên nhân: Có nhiều hãng tạo ra nhiều trình duyệt khác nhau như MS-IE, Moz.-FF, Google- Chrome, … Các hãng không thống nhất với nhau cách xử lý (bản chất trình duyệt chính là trình thông dịch)
• Ví dụ:
– window.event chỉ được thể hiện ở IE
Trang 83Mong muốn và giải pháp
• Mong muốn: Trang web được thể hiện như
nhau ở tất cả các trình duyệt (cross-browser).
• Giải pháp:
– Sử dụng các đối tượng, thuộc tính, phương thức được hỗ trợ và xử lý như nhau trên các trình duyệt
– Tùy trình duyệt mà sinh mã cho phù hợp
● Lấy thông tin trình duyệt:
window.clientInformation.appName/.appVersion/ Platform
Trang 84Ứng dụng mẫu: Table Sorter
Trang 85Ứng dụng mẫu: Tree
Trang 86Ứng dụng mẫu: Tabbed Content
Trang 87Ứng dụng mẫu: Calculator
Trang 88Tiếp theo
HTML5, CSS3