Helpex - Trao đổi & giúp đỡ Đăng nhập
20

Cách hiệu quả nhất để gỡ lỗi mã JavaScript chạy trong cửa sổ bật lên là gì? Cụ thể là tôi cần theo dõi những gì đang xảy ra khi trang tải.

Điều này dành cho các khóa học SCORM 1.2 chạy trong một LMS, điều này phụ thuộc vào các đối tượng JavaScript khác trong cửa sổ mẹ, vì vậy việc gỡ lỗi cửa sổ bật lên sẽ không hoạt động.

Tôi có thể sử dụng một kỹ thuật cho các ngữ cảnh khác mặc dù phần lớn thời gian của tôi là gỡ lỗi các khóa học này.

Tôi có thể sử dụng một cái gì đó giống như một tùy chọn trong trình gỡ lỗi trong trình duyệt tạm dừng trên dòng đầu tiên của JavaScript thực thi cho một trang bật lên, như thể tôi đặt một điểm ngắt ở đó. (Tôi không thể, hoặc ít nhất là không biết cách đặt các điểm ngắt cho đến khi trang đã bắt đầu)

Chỉnh sửa:

Câu debugger;lệnh hoạt động, nhưng chỉ đối với mã tôi kiểm soát. Đôi khi tôi cần theo dõi JavaScript chạy khi một số cửa sổ bật lên mở ra và không thể thêm các điểm ngắt vì mã đã chạy.

20 hữu ích 1 bình luận 21k xem chia sẻ
16

Bạn có thể đặt điều kỳ diệu

debugger;

câu lệnh ở bất kỳ đâu trong mã javascript của bạn (mọi trình gỡ lỗi mà tôi biết sẽ dừng lại ở đó bằng cách tự động đặt điểm ngắt tại dòng đó).

Nếu điều đó cũng không giúp được gì, tôi chỉ cần "mở trang đó trong một cửa sổ / tab mới" và tự thiết lập các điểm ngắt hoặc cũng sử dụng debugger;

16 hữu ích 4 bình luận chia sẻ
6

Mở rộng câu trả lời của @ jAndy, tôi nhận thấy Trình trả lời tự động của Fiddler là một cách hiệu quả để đưa vào các debugger;câu lệnh hoặc các lệnh gọi hữu ích khác trong mã mà bạn không kiểm soát.

Cái gì đó như:

  1. Xóa bộ nhớ cache của bạn trước khi bạn bắt đầu.
  2. Chạy trang web, cho phép tải tất cả các tệp bạn muốn làm việc.
  3. Xác định một yêu cầu bạn muốn giả mạo, ví dụ: một tệp JavaScript mà bạn muốn gỡ lỗi.
  4. Xuất phiên đó từ Fiddler sang tệp cục bộ.
  5. Chỉnh sửa tệp cục bộ để thêm debugger;câu lệnh hoặc bất cứ điều gì.
  6. Quay lại fiddler, chọn lại yêu cầu, sau đó chọn tab AutoResponder.
  7. Chọn 'Thêm quy tắc', sẽ tạo Quy tắc mới cho URL chính xác đó theo mặc định.
  8. Trong hộp tổ hợp ở dưới cùng, chọn Tìm tệp .. sau đó duyệt đến tệp bạn đã giả mạo.
  9. Đảm bảo "Bật phản hồi tự động" và "Chuyển qua yêu cầu chưa được so khớp" ở trên cùng được chọn.
  10. Xóa bộ nhớ cache một lần nữa trong trình duyệt của bạn, sau đó khởi động lại trang web hoặc trang mà bạn đang cố gắng gỡ lỗi.

Bây giờ, trình duyệt sẽ tải phiên bản cục bộ của tệp thay vì từ trang web. Có thể có nhiều cách khác để thay thế một tệp cục bộ cho một URL từ xa trong trình duyệt (Charles cũng có thể có một cái gì đó như AutoResponder và Proxomitron, tôi không biết liệu có một addon của trình duyệt để làm điều đó hay không, nhưng những thứ như Greasemonkey cũng có thể công việc).

6 hữu ích 0 bình luận chia sẻ
5

Kể từ năm 2016, Chrome hiện có tùy chọn này như một tùy chọn trong Cài đặt ChromeDevTools

https://twitter.com/chromedevtools/status/697993811696291842?lang=vi

5 hữu ích 0 bình luận chia sẻ
2

Trong Chrome: tải cửa sổ bật lên, trong khi nó vẫn đang tải, hãy tập trung vào, nhấn nhanh F12 (mở công cụ dành cho nhà phát triển), sau đó nhấn F8.

2 hữu ích 1 bình luận chia sẻ
1

Trong Chrome, bạn có thể thêm // @sourceURL=myScriptName.jsvào cuối tập lệnh của mình, tập lệnh sẽ tải trong Sourcestab trong Kiểm tra của Chrome khi cửa sổ bật lên mở ra.

Tham khảo Gỡ lỗi JavaScript

Ngoài ra, nếu bạn đang sử dụng ASP.NET MVC, bạn có thể nối thêm @{Write("//@ sourceURL=myScriptName.js");}và các tập lệnh bên trong *.cshtmltệp của bạn .

Làm cách nào để gỡ lỗi javascript khi cửa sổ bật lên tải?

1 hữu ích 1 bình luận chia sẻ
0

Tôi khuyên bạn nên xuất thông tin ra bảng điều khiển thông qua consolechức năng. Sau đó, bạn có thể xem thông tin này trong một công cụ gỡ lỗi như Firebug cho Firefox hoặc các công cụ được tích hợp sẵn trong Chrome. Ngoài ra, bạn luôn có thể sử dụng alertđể gỡ lỗi.

Hoặc có thể tôi không hiểu điều gì đó về câu hỏi của bạn ...

0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript debugging scorm1.2 , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading