Khái niệm, định nghĩa Sự kiện onLoad và onUnLoad trong Javascript là gì?

Sự kiện onLoad được gọi đến khi một trang web, hoặc một frameset hay các ảnh đã được tải xong, khi đó những hàm hay khối lệnh được trỏ tới sẽ được thực thi. Sự kiện này có thể hữu dụng trong việc đồng bộ hoá việc load một tập các frame, đặc biệt là khi có thể có những hình ảnh có kích thước lớn cần phải được load hoặc tất cả các dữ liệu frame mà không đến được từ máy chủ.

Sự kiện onUnLoad được gọi khi tắt hoặc reset trang web.

Lưu ý: Hai sự kiện này chỉ có trong thẻ <body>.

Dưới đây là ví dụ về hai sự kiện onLoad và onUnLoad.

<html>

<head>

<title>Mouse Events</title>

1   <script language=”JavaScript”>

2       var sec=0;

3       function now(){

           var newdate= new Date();

           var hour=newdate.getHours();

           var minutes=newdate.getMinutes();

           var seconds=newdate.getSeconds();

           var timestr=hour+”:”+minutes+”:”+seconds;

4          window.setInterval(“trackTime()”, 1000);

5          alert(“Your document has finished loadingn”+

                 “The time: “+timestr);

        }

6       function trackTime(){

7           sec++;

        }

8       function howLong(){

           alert(“You have been browsing here for “+ sec+” seconds”);

        }

    </script>

    </head>

9   <body onLoad=”now();”

10      onUnLoad=”howLong();”>

    <font face=”arial,helvetica” size=5>

    When you leave or reload this page, <br>an alert dialog box

    will appear.

    </body>

    </html>

GIẢI THÍCH:

  1. Chương trình JavaScript bắt đầu ở đây.
  2. Biến global có tên sec.
  3. Hàm now() do ta định nghĩa có một số phương thức của đối tượng Date để tính toán thời gian. Hàm này sẽ có nhiệm vụ hiển thị thời gian ra hộp thoại alert bắt đầu từ khi trang được tải cho đến khi thoát.
  4. phương thức setInterval() của đối tượng window được thiết lập để gọi hàm trackTime() sau mỗi 1.000 milli giây (một giây) bắt đầu từ khi trang web được tải cho đến khi trang web không còn được tải nữa.
  5. Hộp thoại alert sẽ xuất hiện sau khi tải xong trang web.
  6. Đây là hàm do người dùng định nghĩa dùng để tăng số giây (second) cho biến sec mỗi khi trang web bắt đầu từ sau khi trang web được tải.
  7. Biến sec được tăng giá trị mỗi khi hàm trackTime() được gọi.
  8. Hàm này được gọi khi thoát hoặc khi tải lại trang web. Nó được thực thi thi sự kiện onUnLoad ở dòng 10 được kích hoạt.
  9. Khi tải xong trang web thì sự kiện onLoad được kích hoạt. onLoad là một thuộc tính của thẻ <body. Sự kiện này được kích hoạt sẽ gọi tới hàm now() để lấy thời gian hiện tại sau mỗi giây. Sau mỗi một giây thì hàm now() sẽ gọi hàm trackTime() để update giá trị (tăng lên 1) cho biến sec.
  10. Sự kiện onUnLoad được kích hoạt khi người dùng rời hoặc tải lại trang web.

Phương thức onload() (window.onload()) mô phỏng cho sự kiện onLoad, còn phương thức ununload() (window.ununload()) mô phỏng cho hành vi của sự kiện onUnload. Tất cả các phương thức sự kiện của JavaScript đều phải được viết bằng chữ thường như onload() hay ununload(), còn bản thân các thuộc tính sự kiện của các thẻ HTML thì không phân biệt hoa/thường, cho nên bạn có thể viết là ONUNLOAD, onUnLoad hay onunload đều được.