5

Có lẽ tôi đang hỏi quá nhiều từ các công cụ tìm kiếm của trình duyệt nhưng ... có cách nào để chỉ đơn giản là đóng băng trạng thái của trang web mà không tìm các dòng tương đối trong mã JS và đặt câu lệnh debugger? (Không duyệt câu hỏi cụ thể, bất kỳ trình duyệt có thể làm điều này là tốt)Làm thế nào để đóng băng trạng thái của cây dom (không sử dụng js "trình gỡ lỗi" tuyên bố) để kiểm tra nó?

Tôi có một tình huống mà tôi muốn kiểm tra một số DOM trên trang đó là chỉ truy cập sau:

  • tôi nhấp vào một cụ thể nút
  • Nó biến mất sau sự kiện mờ (Ví dụ: khi tôi đặt phần tử cha trong thanh tra và nhấp vào nó, nó sẽ biến mất ngay lập tức).

Vì kích hoạt khi nhấp, "Trạng thái phần tử lực lượng" cũng không giúp ích gì.

Cảm ơn!

+1

Bản sao có thể có của [Tôi có thể ngắt bằng trình gỡ lỗi trên tất cả thay đổi đối với phần tử DOM không?] (Http://stackoverflow.com/questions/3015197/can-i-break-with-debugger-on-all-changes- to-a-dom-element) – approxiblue

Trả lời

1

Trong Chrome, nếu bạn biết các yếu tố chứa trong giao diện đó sẽ được sửa đổi sau đó nhấp chuột phải vào nó và "Kiểm tra Phần tử "(hoặc chuyển thẳng đến DOM nếu điều đó dễ dàng hơn cho bạn), sau đó nhấp chuột phải vào phần tử trong DOM và chọn" Break On ... ">" Subtree modifications "(hoặc bất kỳ tùy chọn nào khác phù hợp với bạn) . Điều này sau đó sẽ tạm dừng thực thi JavaScript khi bất kỳ phần tử nào trong DOM đó thay đổi, cho phép bạn bước qua JS bằng F10, v.v. và xem DOM tại bất kỳ thời điểm nào trong quá trình thực thi.

Bạn có thể theo dõi toàn bộ <body> theo cách này nếu bạn không biết điều gì sẽ thay đổi, nhưng điều đó có thể nắm bắt quá nhiều thay đổi, tùy thuộc vào mức độ động của trang của bạn.

1

Trong công cụ dành cho nhà phát triển, bạn có thể đặt điểm ngắt tại bất kỳ dòng nào trong mã nguồn. Nó hoạt động giống như trong Visual Studio chẳng hạn.

Điểm ngắt sẽ vẫn hoạt động ngay cả khi bạn dừng và khởi động lại trình duyệt. Hoạt động với Chrome/Firefox/Internet Explorer ít nhất.

Cách khác, bạn có thể đăng một trạng thái đối tượng sau đó là serialized:

console.log(JSON.stringify(state)) 
Các vấn đề liên quan