Tôi đang phát triển JS được sử dụng trong một khung công tác web và thường được trộn lẫn với mã jQuery của các nhà phát triển khác (thường dễ bị lỗi). Thật không may lỗi trong jQuery của họ (tài liệu). Các khối đã chặn ngăn không cho tôi thực thi. Lấy mẫu đơn giản sau đây:Xử lý lỗi trong jQuery (tài liệu) .ready
<script type="text/javascript">
jQuery(document).ready(function() {
nosuchobject.fakemethod(); //intentionally cause major error
});
</script>
<script type="text/javascript">
jQuery(document).ready(function() {
alert("Hello!"); //never executed
});
</script>
Không phải khối thứ hai sẵn sàng thực hiện bất kể những gì đã xảy ra trước đó? Có một cách "an toàn" để chạy jQuery (tài liệu). Đã có mà sẽ chạy ngay cả trong trường hợp của các lỗi trước đó?
EDIT: Tôi không có quyền kiểm soát/khả năng hiển thị đối với các khối dễ bị lỗi do chúng được viết bởi các tác giả khác và được trộn lẫn tùy ý.
Điều này dường như hoạt động khá tốt, bất kể nó đi trước hay sau các tập lệnh có khả năng lỗi. Tôi nghĩ rằng những gì tôi sẽ làm là di chuyển các nội dung của khối đã sẵn sàng của tôi (cảnh báo ("Hello!") Trong mẫu) để chỉ sau khi khối catch. Bằng cách đó, khối sẵn sàng của tôi có thể "nối thêm" chính nó vào cuối các khối sẵn sàng trước đó. – 3hough
Giải pháp tuyệt vời. Chưa bao giờ nghĩ về điều đó. –
Không chắc mình đang nghĩ gì, nhưng nó sẽ hoạt động bất kể nó ở đâu, miễn là nó ở trong thẻ
và không ở trong một số sự kiện onload, vì chúng ta đang cướp phương thức sẵn sàng trước khi nó được gọi vào tải trọng dom. – jvenema