2013-05-25 30 views
6

Vì vậy, tôi biết rằng nếu bạn sử dụng jQuery, bạn có thể sử dụng $(document).load(function(){}); để bất kỳ mã nào bạn viết vào hàm sẽ được thực thi sau khi toàn bộ trang đã được tải, nhưng có cách làm tương tự nếu bạn không sử dụng jQuery và chỉ sử dụng JS?Thực hiện JS khi tải trang mà không cần sử dụng jQuery

Ví dụ ...

<html> 
    <head> 
     <script type="text/javascript"> 
      var box = document.getElementById('box'); 
      alert(box); 
     </script> 
    </head> 
    <body> 
     <div id="box" style="width:200px; height:200px; background-color:#999; 
margin:20px;"></div> 
    </body> 
</html> 

Nếu tôi sử dụng phương pháp này cảnh báo chỉ nói null. Vì vậy, có một cách để làm cho mã js chạy một khi trang đã tải?

+0

Thực ra, khi sử dụng jQuery, vui lòng không ** sử dụng '$ (tài liệu) .load (function() {...}); ' – adeneo

+0

Câu hỏi này có thể có câu trả lời bạn cần [http://stackoverflow.com/questions/799981...](http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery) – Tifa

Trả lời

13

tôi sử dụng:

<script type="text/javascript"> 
    window.onload = function(){ 
     //do stuff here 
    }; 
</script> 

Bằng cách này bạn không cần phải sử dụng bất kỳ thẻ onload trong html của bạn.

+0

Tôi thích bạn, 1 câu trả lời sẽ xuất hiện khi nó cho phép tôi. – user1563944

8

Cách đơn giản nhất là chỉ cần đưa kịch bản của bạn ở phần cuối của tài liệu, thường ngay trước thẻ cơ thể đóng cửa:

<html> 
<head> 

</head> 
<body> 
<div id="box" style="width:200px; height:200px; background-color:#999; margin:20px;"></div> 
<script type="text/javascript"> 
    var box = document.getElementById('box'); 
    alert(box); 
</script> 
</body> 

</html> 
+0

để lấy js để tìm phần tử #box các thẻ js có để đi trong phần nội dung chứ không phải trong thẻ head? – user1563944

+0

@ user1563944 - cụ thể hơn, javascript phải đến sau phần tử bạn đang cố gắng truy cập, nếu không yếu tố không tồn tại khi javascript thực hiện. – adeneo

2

Bạn có thể sử dụng onload trong thẻ cơ thể của bạn.

<head> 
    <script type="text/javascript"> 
     function doSomething() { 
     //your code here 
     } 
    </script> 
</head> 
<body onload="doSomething()"> 
+0

lý do bỏ phiếu xuống? – Robbert

4

Bạn có thể sử dụng nhiều phương pháp để thực hiện việc này.

Cách đơn giản nhất, phương pháp đơn giản nhất sẽ chỉ cần thêm thẻ script ở phần cuối của thẻ cơ thể của bạn:

<html> 
<head> 
    <title> Example </title> 
</head> 
<body> 
    <div> 
     <p>Hello</p> 
    </div> 
    <script type="text/javascript"> 
     // Do stuff here 
    </script> 
</body> 
</html> 

Cách jQuery làm nó là một cái gì đó tương tự như:

window.onload = function() { 
    // Do stuff here 
} 

tôi thường chỉ làm theo cách thứ hai, chỉ trong trường hợp.

Để đảm bảo tính tương thích của trình duyệt chéo, hãy thu thập thông tin qua nguồn jQuery và tìm thấy những gì họ sử dụng.

Các vấn đề liên quan