Tôi có thể yêu cầu trình gỡ lỗi tập lệnh Chrome bỏ qua jquery.js không?


98

Có cách nào để yêu cầu trình gỡ lỗi Chrome (hoặc có thể là Firebug?) Không bị hỏng trong các tệp nhất định không? Để cho rằng chúng không bị hỏng, về cơ bản? Điều này có vẻ giống như một cái gì đó mà họ có thể xây dựng.


3
Điều này sẽ đặc biệt hữu ích đối với tôi trong bối cảnh của các sự kiện jquery. Khi một sự kiện được kích hoạt, bạn phải trải qua rất nhiều khó khăn để tìm ra trình xử lý nào đang được gọi.
tofarr

Có vẻ như bạn nên đánh dấu câu trả lời là jfriend00. Tôi không thể tìm ra lý do cho hành vi khó chịu đó, và câu trả lời của anh ấy đã giải quyết được vấn đề đó.
OrPaz

@OrPaz Tôi không đồng ý, vấn đề của tôi (và sự hiểu biết của tôi về vấn đề của Josh) là chúng tôi đang gỡ lỗi tệp của mình, tuy nhiên điều này không có nghĩa là một ngoại lệ đang được đưa ra. Giả định của tôi là mã của tôi là vấn đề chứ không phải của jQuery, vì vậy tôi không bao giờ muốn gỡ lỗi jQuery. Tôi nghĩ về nó như DebuggerHiddenAttribute trong .NET
Nathan Koop

Tôi đã bình chọn câu trả lời của jfriend00, vì nó có thể có giá trị đối với những người gặp câu hỏi này, nhưng tôi không đánh dấu đó là câu trả lời chính xác, bởi vì Nathan Koop đúng, nó không giải quyết được vấn đề của tôi.
Josh Schultz

Câu trả lời:


47

Các tệp JS của Blackboxing hiện có thể thực hiện được trong Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

Và trong Chrome Canary bằng các công cụ dành cho Nhà phát triển thử nghiệm. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code-ised-debugging-in-chrome/

Cập nhật . Trong Chrome phiên bản 75 có một tab phân tách cho hộp đen .

Trên đây cũng hoạt động trong bản dựng Chrome ổn định.


7
Hộp đen dường như không làm cho trình gỡ lỗi bỏ qua tệp. Nó vẫn sẽ chuyển qua các cuộc gọi hàm của nó ... Bỏ qua hoàn toàn một tệp sẽ rất hay.
Antonio Brandao

4
Đó là điểm trong hộp đen - chạy mã mà không thấy nội dung của nó.
diynevala

1
Không phải là hộp đen khi bạn chỉ đơn giản là không bước qua các thư viện khác, không phải là chúng không tồn tại hoặc không được sử dụng.
johnny


31

Phiên bản mới nhất của Chrome đã triển khai tính năng hộp đen mới thực hiện chính xác những gì bạn đang tìm kiếm. Về cơ bản, khi bạn đặt tùy chọn hộp đen trên một tệp nhất định, nó sẽ ngăn trình gỡ lỗi Chrome xâm nhập vào tệp đó.

Tính năng này được tích hợp sẵn và nó có thể được đặt bằng menu ngữ cảnh của tệp (nhấp chuột phải). Nó cũng sẽ hoạt động nếu trình gỡ lỗi Chrome được đặt để dừng trên tất cả các trường hợp ngoại lệ.


2
Giải pháp rất sạch Không cần plugin.
George Botros

3
Không còn hoạt động đáng tiếc. Nếu bạn đã chọn "Pause On Caught Exceptions" và sau đó hộp đen jQuery, nó sẽ vẫn bị hỏng trên các ngoại lệ.
blackmamba

15

Nếu vấn đề bạn đang gặp phải là trình gỡ lỗi Chrome đang dừng trên tất cả các ngoại lệ, ngay cả những ngoại lệ bên trong jQuery, thì bạn có thể cần phải yêu cầu Chrome chỉ tạm dừng đối với các ngoại lệ không cần thiết, không phải tất cả các ngoại lệ. Khi ở trong bảng Script trong trình gỡ lỗi, có một biểu tượng ở góc dưới bên trái của cửa sổ điều khiển việc này.


Đã cứu tôi với cái này! Cảm ơn! (+ 1)
OrPaz 14/11/12

12

Trong Chrome, mở Công cụ dành cho nhà phát triển, sau đó đi tới Cài đặt và bạn sẽ thấy tab Hộp đen :

Hộp đen Chrome

Trong FireFox, điều đó thậm chí còn dễ dàng hơn, chỉ cần nhấp vào Con mắt ở cuối tệp:

Hộp đen FireFox


Bạn vừa biến cuộc đời tôi thành thiên đường! Cảm ơn!
Không biết

7
  1. Chuyển đến cài đặt công cụ dành cho nhà phát triển và nhấp vào tab Balckboxing trên bảng điều khiển bên trái.
  2. Sau đó nhấp vào nút Thêm mẫu và nhập jquery.js
  3. Đóng và mở lại các công cụ dành cho nhà phát triển, bây giờ nó đã bị bỏ qua!

2

Nếu trình gỡ lỗi đang phát nổ ở đâu đó trong các tệp jQuery, bạn có thể bao bọc các cuộc gọi nghi ngờ trong một lần thử / bắt và sau đó tự tạo ra một lỗi catch. Bằng cách đó, bạn có thể xác định chính xác nơi bạn đang làm sai.

Tôi sẽ có xu hướng thực hiện theo dõi ngăn xếp để xem tại sao mã của tôi bị nổ tung, ví dụ như JSON không hợp lệ, hơn là thử độ bóng lên nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.