Có trình xử lý sự kiện nào trước khi onLoad/onPageShow không? Sự cố với onLoad là nếu có bất kỳ thay đổi nào trong hiển thị, trang sẽ hiển thị mà không thay đổi cho đến khi nó được tải đầy đủ, sau đó tập lệnh sẽ chạy. Cách tốt nhất để đảm bảo rằng nó sẽ chạy càng sớm càng tốt?Javascript trước khi tải?
Trả lời
Nếu bạn đặt câu lệnh Javascript (thay vì định nghĩa chức năng) bên trong thẻ <script>
, chúng sẽ được thực thi trong khi tải trang - trước khi sự kiện onLoad được kích hoạt.
<html>
<body>
<h2>First header</h2>
<script type="text/javascript">
alert("Hi, I am here");
document.write("<h3>This is Javascript generated</h3>");
</script>
<h2>Second header</h2>
</body>
</html>
Lưu ý rằng bạn không thể tìm kiếm phần tử theo ID vì phần tử này có thể chưa được hiển thị, vì vậy khả năng thay đổi trang của bạn bị giới hạn.
Dòng dưới cùng: có thể, không được khuyến nghị.
Những gì tôi thường làm gì trong tình huống như vậy là như sau:
- Tận dụng các bộ phận của trang đó có thể thay đổi vô hình (thông qua
style="visibility:hidden;"
); - Bật onLoad chạy mã Javascript thay đổi trang và sau đó đặt khả năng hiển thị của các phần được nêu thành
visibility:visible
.
Tôi nghĩ * hầu hết * trình duyệt sẽ xử lý chính xác 'getElemementById' miễn là phần tử đã được xác định trước đó tài liệu - tuy nhiên, DOM không được đảm bảo cho đến khi tải lên như được chỉ ra, do đó, nó là độ dốc ... :) –
Bạn cũng có thể sử dụng sự kiện DOMContentloaded kích hoạt khi DOM đã tải hoàn toàn nhưng không phải tất cả các phương tiện. OnLoad chỉ kích hoạt sau khi tất cả phương tiện đã được tải. – citadelgrad
Câu trả lời đơn giản là thực hiện cuộc gọi hàm sau phần tử DOM bên trong phần nội dung của trang. Tôi đã có vấn đề này bằng cách sử dụng một chức năng javascript để phong cách liên kết menu điều hướng của tôi, tuy nhiên tôi đã có một yếu tố bản đồ google khiến trang tải chậm. Trên trang paticular này, tôi chạy tập lệnh ngay sau liên kết. Nó là một giải pháp, có thể không phải là tốt nhất nhưng nó hoạt động. Hi vọng điêu nay co ich.
- 1. Tải trước và chạy jQuery/javascript trước khi xem trang
- 2. thực thi javascript trước khi dom đang tải
- 3. Tải cảnh báo Javascript trước khi hiển thị trang
- 4. jQuery/javascript - Nhận kích thước hình ảnh trước khi tải
- 5. Tải kích thước tệp tải lên trước khi tải lên
- 6. Trước khi tải hình ảnh
- 7. Tách tệp trước khi tải lên?
- 8. Có thể đợi cho đến khi tất cả các tệp javascript được tải trước khi thực thi mã javascript không?
- 9. Tải trước video HTML5 đầy đủ trong javascript
- 10. Hiển thị bộ tải Ajax trước khi tải dữ liệu
- 11. Kiểm tra kích thước tải xuống trước khi tải xuống
- 12. Tối ưu hóa javascript tải trước hình ảnh
- 13. Thay đổi kích thước hình ảnh trước khi tải lên
- 14. Chặn Javascript cho đến khi quá trình tải trước hình ảnh hoàn tất?
- 15. Không thể đọc lỗi JavaScript trong giao diện điều khiển Firebug trước khi tải lại trang
- 16. Truy cập HTML/Javascript EXIF dữ liệu trước khi tải lên tệp
- 17. Javascript để kiểm tra tệp trước khi tải lên trong Internet Explorer
- 18. Cách chạy jQuery hoặc JavaScript trước khi trang bắt đầu tải
- 19. Làm cách nào để thực thi chức năng Javascript trước khi tải trang?
- 20. Xóa (các) tệp đã chọn trước khi tải lên bằng Javascript
- 21. Lấy kích thước hình ảnh bằng Javascript trước khi hình ảnh được tải đầy đủ
- 22. Kiểm tra và chiều cao trước khi tải lên với Javascript
- 23. Chọn dữ liệu từ CSV trước khi tải nó bằng javascript (thư viện d3)
- 24. Buộc tải trước video HTML5 đầy đủ bằng Javascript?
- 25. image.onload cháy trước khi hình ảnh được tải hoàn toàn
- 26. CSS Image layouting trước khi hình ảnh được tải
- 27. Đợi tải hình ảnh trước khi tiếp tục
- 28. Javascript không tải sau khi AJAX gọi
- 29. Tệp đổi tên Javascript khi tải xuống
- 30. Chạy JavaScript trong UIWebView trước khi bất kỳ JavaScript nào khác chạy
Phần tử tập lệnh nội tuyến đồng bộ sẽ chạy trước các sự kiện đó. –