Làm cách nào tôi có thể kiểm tra phần tử html biến mất khỏi DOM khi mất tiêu điểm?


137

Tôi đang cố kiểm tra các thuộc tính CSS từ đầu vào vào một ô của bảng. Đầu vào xuất hiện khi nhấp và biến mất khi mất tiêu điểm, như khi tôi cố kiểm tra nó. Làm thế nào tôi có thể làm điều đó để không bị mất tập trung trong khi tôi chuyển sang một cửa sổ khác (thanh tra)?



3
không phải, giải pháp cho câu hỏi này không phù hợp ở đây
Rogelio Triviño 10/03/2015

1
Giải pháp rất phù hợp
Jonathan

2
Có những câu hỏi khác được giải quyết với câu trả lời này và đó là lần thử đầu tiên của tôi, nhưng trong tình huống này, trạng thái: tiêu điểm bị mất khi bạn thay đổi từ trình duyệt sang cửa sổ Công cụ dành cho nhà phát triển Chrome và mục mong muốn cũng được kiểm tra. Tôi đang nói về các yếu tố DOM xuất hiện khi nhấp và biến mất khi mất tập trung.
Rogelio Triviño 11/03/2015

Câu trả lời:


144

Trong trình duyệt Chrome, mở Công cụ dành cho nhà phát triển và chọn tab Thành phần , sau đó mở menu ngữ cảnh của nút cha của phần tử bạn muốn kiểm tra, trong menu ngữ cảnh, nhấp vào Break on > Subtree sửa đổi .

Sau đó, bạn chỉ cần nhấp vào trang và bạn sẽ vào thanh tra mà không mất tập trung hoặc mất yếu tố bạn muốn kiểm tra.

nhập mô tả hình ảnh ở đây


5
Có cách nào trong FF không?
anh chàng

2
cảm ơn, sau nhiều giờ bị chặn tôi đã có giải pháp này và quyết định viết câu hỏi và giải pháp ở đây, theo thời gian là nguồn danh tiếng chính của tôi ở đây, bạn biết đấy, tôi không có thời gian để hỏi những câu như "làm thế nào bạn có thể làm 2 + 2 trên java? "
Rogelio Triviño

Làm thế nào để bạn tìm thấy nút cha của phần tử bạn muốn kiểm tra? Tôi có nút tôi nhấp vào để mở phần tử trong thanh tra, nhưng cửa sổ bật lên rõ ràng không liên quan trong DOM.
Michael

có, đôi khi javascript tạo các phần tử mới ngay dưới phần thân hoặc các phần tử DOM hàng đầu có liên quan. Nếu mã của bạn không có vấn đề gì, bạn phải biết javascript của mình đang tạo ra thứ gì, nếu không, có lẽ bạn phải phá vỡ các sửa đổi của cây con BODY và ​​kiểm tra các công cụ dev nơi chính xác là tạo các phần tử dom mới (không phải là trực tiếp phụ huynh)
Rogelio Triviño

Đối với những người bối rối về menu ngữ cảnh, nó là menu ba chấm ở phía xa bên trái của nút dom.
palerdot

92

Bạn có thể chụp phần tử biến mất nếu bạn tạm dừng thực thi JavaScript bằng phím tắt mà không cần di chuyển chuột. Đây là cách bạn làm điều này trong Chrome:

  1. Mở Công cụ dành cho nhà phát triển và đi đến Nguồn.
  2. Lưu ý các phím tắt để tạm dừng thực thi tập lệnh F8.

    Tạm dừng thực thi tập lệnh

  3. Tương tác với UI để có được phần tử xuất hiện.

  4. Trúng F8.
  5. Làm thế nào bạn có thể di chuyển chuột của bạn xung quanh, kiểm tra DOM, bất cứ điều gì. Các yếu tố sẽ ở lại đó.

Thủ thuật này hoạt động trong Firefox và các trình duyệt hiện đại khác.


12
Điều này rất tốt cho nhiều thứ - nhưng một số tập lệnh vẫn sẽ kích hoạt trước khi trình gỡ lỗi bị khóa. Ví dụ, hộp chọn tự động hoàn thành của tôi ẩn tất cả các lựa chọn trước khi tập lệnh bị tạm dừng - làm cho rất khó điều chỉnh các kiểu tương tác.
Mir

Thật không may, đây chỉ là một gợi ý về chrome, nhưng đã giải quyết được tại sao tôi lại tự mình thử nó.
webwake

1
@webwake, vâng, ví dụ cụ thể này có trong Chrome, nhưng hầu hết các trình duyệt hiện đại sẽ cho phép bạn tạm dừng thực thi tập lệnh bằng phím tắt.
mxxk

Điều này làm việc hoàn hảo và rất dễ dàng! Lưu ý: đó là `+` để tạm dừng thực thi tập lệnh trên Chrome cho Mac.
Jordan Gray

1
Thật tốt khi nghe @JordanGray. Ý của bạn là -backslash? Đối với tôi nó nói cả nó cũng như F8công việc.
mxxk

73

Nếu vẫn thất bại, hãy nhập cái này vào Bảng điều khiển:

setTimeout(() => { debugger; }, 5000)

Sau đó, bạn đã có 5 giây (hoặc thay đổi giá trị thành bất kỳ thứ gì khác) để làm cho bất cứ điều gì bạn muốn gỡ lỗi xuất hiện.

Không có câu trả lời nào khác phù hợp với tôi - cây DOM tiếp tục được sửa đổi (tức là thứ tôi quan tâm đã biến mất) ngay trước khi tập lệnh tạm dừng.


7
Giải pháp này khá khó khăn, nhưng nó thực sự có tác dụng! Cảm ơn bạn!
Manjar

1
Các giải pháp đơn giản đáng tin cậy nhất của tất cả chúng.
James

13

Không chắc chắn nếu điều này hoạt động trong tình huống của bạn nhưng thông thường (và trong mọi trường hợp đáng được đề cập về vấn đề này vì đây là một công cụ tuyệt vời) trong Công cụ dành cho nhà phát triển Chrome, bạn có thể mô phỏng trạng thái thành phần và một trạng thái cũng vậy :focus.

Để làm như vậy, hãy chuyển đến Elementstab trong Công cụ dành cho nhà phát triển và đảm bảo bạn ở Stylesphần bên phải (đây phải là vị trí mặc định khi bạn khởi động Công cụ dành cho nhà phát triển). Bây giờ chỉ cần các Styles ở góc trên bên phải bạn có một biểu tượng Toggle Element State. Khi bạn nhấp vào nó, bạn có thể mô phỏng :active, :hover, :focus:visitedcho nguyên tố này bạn đã chọn trên bên trái theo quan điểm mã của bạn.

nhập mô tả hình ảnh ở đây


3
Có những câu hỏi khác được giải quyết với câu trả lời này và đó là lần thử đầu tiên của tôi, nhưng trong tình huống này, trạng thái: tiêu điểm bị mất khi bạn thay đổi từ trình duyệt sang cửa sổ Công cụ dành cho nhà phát triển Chrome
Rogelio Triviño 10/03/2015

9

Trong Chrome trên trang công cụ dành cho nhà phát triển cho trang đang thử nghiệm ... hãy nhấp vào menu tùy chọn và mở cài đặt cho tùy chọn ... trong DevTools kích hoạt 'Giả lập trang tập trung'

Sau đó trong trang thử nghiệm khiến các yếu tố xuất hiện. Điều này hoạt động để giữ cho kết quả tìm kiếm bật lên của tôi được tập trung để ở trên màn hình để tôi có thể làm việc với nó.


8

Không phải là một giải pháp thực sự, nhưng nó thường hoạt động (:

  1. Tập trung vào yếu tố
  2. Nhấp chuột phải vào menu ngữ cảnh
  3. Chuyển xuống công cụ dành cho nhà phát triển

Kiểm tra đầu vào tập trung


1
vẫn hoạt động trên Chrome kể từ tháng 1 năm 2020, cảm ơn vì điều này! cách giải quyết tốt đẹp
manroe

2

Tôi đã có một tình huống rất khó khăn và không có câu trả lời nào được thực hiện từ đây (Tôi đã không xác minh các câu trả lời thay đổi container, đó là cơ thể cho tôi, hoặc sự kiện ban đầu, vì tôi không biết điều đó). Cuối cùng tôi đã tìm thấy một cách giải quyết bằng cách vượt qua Điểm dừng Trình nghe sự kiện điều khiển trong Trình kiểm tra Chrome. Có lẽ đó cũng là một cách phá vỡ trình duyệt chéo cho các tình huống phức tạp, ngay cả F8 hoặc nhấp chuột phải cũng ẩn cửa sổ bật lên:

nhập mô tả hình ảnh ở đây


1

Dán Javascript sau vào bảng điều khiển dành cho nhà phát triển trình duyệt:

// Delayed console log of parent element with disappearing child element(s)
// Once code is trigger, you have 3 seconds to trigger the hidden element before it snapshots.
// The hidden elements should appear in the console ready to inspect.

var timer = 3000; //time before snapshot
var parent_of_element_to_inspect = 'div.elementcontainer'; //container of element to snapshot
setTimeout(function(){
 console.log(document.querySelector(parent_of_element_to_inspect).cloneNode(true));
},timer);

0

Tôi có cách khắc phục nhanh hơn vì tôi không giỏi sử dụng các công cụ, đây là những gì tôi làm.

event.originalEvent.preventDefault();
event.originalEvent.stopImmediatePropagation();
event.originalEvent.stopPropagation();

-1

Nếu bạn mở Chrome DevTools và sau đó kích hoạt trình kiểm tra phần tử bằng các phím tắt, nó sẽ giải quyết vấn đề.

Mac: Cmd+Opt+J và sau đóCmd+Opt+C

Windows: Ctrl+Shift+J và sau đóCtrl+Shift+C

[1]

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.