Thursday, November 21, 2024

[Javascript] – Phần 70: Chạy hàm JavaScript khi load một website

-

Để load một hàm khi load một website, bạn có thể sử dụng một trong hai cách.

Cách 1: Sử dụng hàm window.onload()

Hàm window.onload() sẽ được gọi khi trang web đã được tải hoàn toàn. Bạn có thể sử dụng hàm này để load hàm của bạn bằng cách gọi hàm đó bên trong hàm window.onload().

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Load hàm khi load trang web</title>
</head>
<body>
  <script>
    function myFunction() {
      console.log('Hàm myFunction đã được load!');
    }

    window.onload = function() {
      myFunction();
    };
  </script>
</body>
</html>

Kết quả:

Hàm myFunction đã được load!

Giải thích:

Trong ví dụ này, chúng ta tạo một hàm myFunction() đơn giản in ra thông báo “Hàm myFunction đã được load!”. Sau đó, chúng ta sử dụng hàm window.onload() để gọi hàm

Cách 2: Sử dụng hàm document.addEventListener()

Hàm document.addEventListener() cho phép bạn lắng nghe các sự kiện trên một đối tượng. Trong trường hợp này, bạn có thể lắng nghe sự kiện DOMContentLoaded để load hàm của bạn.

Ví dụ 2: Sử dụng hàm document.addEventListener()

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Load hàm khi load trang web</title>
</head>
<body>
  <script>
    function myFunction() {
      console.log('Hàm myFunction đã được load!');
    }

    document.addEventListener('DOMContentLoaded', function() {
      myFunction();
    });
  </script>
</body>
</html>

Kết quả:

Hàm myFunction đã được load!

Giải thích:

Trong ví dụ này, chúng ta sử dụng hàm document.addEventListener() để lắng nghe sự kiện DOMContentLoaded. Sự kiện này sẽ được gọi khi DOM của trang web đã được tải hoàn toàn. Khi sự kiện này được gọi, chúng ta sẽ gọi hàm myFunction().

Lựa chọn nào tốt hơn?

Cách 1 đơn giản hơn và dễ sử dụng hơn. Tuy nhiên, cách 2 linh hoạt hơn và cho phép bạn lắng nghe các sự kiện khác nhau.

Ví dụ 3: Load hàm khi một phần tử HTML cụ thể được tải

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Load hàm khi load trang web</title>
</head>
<body>
  <script>
    function myFunction() {
      console.log('Hàm myFunction đã được load!');
    }

    const myElement = document.querySelector('#my-element');

    myElement.addEventListener('load', function() {
      myFunction();
    });
  </script>

  <div id="my-element">
    Đây là phần tử HTML cần load hàm myFunction()
  </div>
</body>
</html>

Kết quả:

Hàm myFunction đã được load!

Giải thích:

Trong ví dụ này, chúng ta tạo một phần tử HTML có id là my-element. Sau đó, chúng ta sử dụng hàm document.querySelector() để lấy phần tử này. Cuối cùng, chúng ta sử dụng hàm addEventListener() để lắng nghe sự kiện load trên phần tử này. Khi sự kiện này được gọi, chúng ta sẽ gọi hàm myFunction().

Ràng buộc chỉ load một hàm ở một thẻ cụ thể.

Để ràng buộc chỉ load một hàm ở một thẻ cụ thể ở một file HTML cụ thể, bạn có thể sử dụng thẻ script với thuộc tính src. Thuộc tính này chỉ định URL của file JavaScript mà bạn muốn load.

Ví dụ:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Ràng buộc hàm load ở một thẻ cụ thể</title>
</head>
<body>
  <script src="my-function.js"></script>

  <div id="my-element">
    Đây là phần tử HTML cần load hàm myFunction()
  </div>
</body>
</html>

Trong ví dụ này, chúng ta tạo một file JavaScript có tên my-function.js chứa hàm myFunction(). Sau đó, chúng ta sử dụng thẻ script với thuộc tính src để load file my-function.js.

Để ràng buộc hàm myFunction() chỉ load ở thẻ my-element, bạn có thể sử dụng hàm addEventListener() để lắng nghe sự kiện load trên thẻ này.

Ví dụ:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Load hàm khi load trang web</title>
</head>
<body>
    <script src="my-function.js"></script>
    <div id="my-element">
        Đây là phần tử HTML cần load hàm myFunction()
      </div>
      <script>
    
        const myElement = document.querySelector('#my-element');
    
        myElement.addEventListener('load', function() {
          myFunction();
        });
      </script>
</body>
</html>

my-function.js

function myFunction() {
    console.log('Hàm myFunction đã được load!');
  }

  document.addEventListener('DOMContentLoaded', function() {
    myFunction();
  });

Trong ví dụ này, chúng ta sử dụng hàm document.querySelector() để lấy phần tử my-element. Sau đó, chúng ta sử dụng hàm addEventListener() để lắng nghe sự kiện load trên phần tử này. Khi sự kiện này được gọi, chúng ta sẽ gọi hàm myFunction().

Kết quả:

Hàm myFunction đã được load!

Như vậy, hàm myFunction() chỉ được load khi thẻ my-element được tải hoàn toàn.

Bạn cũng có thể sử dụng hàm querySelectorAll() để lấy danh sách các phần tử HTML có id cụ thể. Sau đó, bạn có thể sử dụng vòng lặp for để duyệt qua danh sách này và gọi hàm addEventListener() cho từng phần tử.

Ví dụ:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Load hàm dựa vào id của thẻ</title>
</head>
<body>
  <script src="my-function.js"></script>

  <div id="my-element-1">
    Đây là phần tử HTML cần load hàm myFunction()
  </div>

  <div id="my-element-2">
    Đây là phần tử HTML cần load hàm myFunction()
  </div>

  <script>
    function myFunction() {
      console.log('Hàm myFunction đã được load!');
    }

    const myElements = document.querySelectorAll('#my-element');

    for (const myElement of myElements) {
      myElement.addEventListener('load', function() {
        myFunction();
      });
    }
  </script>
</body>
</html>

Trong ví dụ này, chúng ta sử dụng hàm querySelectorAll() để lấy danh sách các phần tử có id là my-element. Sau đó, chúng ta sử dụng vòng lặp for để duyệt qua danh sách này và gọi hàm addEventListener() cho từng phần tử. Khi sự kiện load được gọi cho từng phần tử, chúng ta sẽ gọi hàm myFunction().

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories