ตรวจสอบองค์ประกอบที่ปรากฏเฉพาะเมื่อมีการป้อน / ป้อนองค์ประกอบอื่นด้วยเมาส์


119

บ่อยครั้งที่ฉันต้องการตรวจสอบองค์ประกอบ (เช่นคำแนะนำเครื่องมือ) ที่ปรากฏขึ้นเมื่อมีการป้อน / ป้อนองค์ประกอบอื่นด้วยเมาส์เท่านั้น องค์ประกอบที่ปรากฏจะปรากฏให้เห็นผ่านเหตุการณ์ mouseenter ของ jQuery

ฉันไม่สามารถตรวจสอบคำแนะนำเครื่องมือได้เนื่องจากคำแนะนำเครื่องมือจะหายไปเมื่อเมาส์ของฉันออกจากองค์ประกอบที่มีอยู่

มีวิธีหยุดเหตุการณ์ JS ชั่วคราวเพื่อให้ฉันสามารถวางเมาส์บนองค์ประกอบจากนั้นหยุด JS ของเบราว์เซอร์ชั่วคราวและตรวจสอบได้สำเร็จหรือไม่

ยกตัวอย่างให้ลองตรวจสอบคำแนะนำทวิตเตอร์บูตของ: http://getbootstrap.com/javascript/#tooltips


9
เพียงแค่ FYI หากองค์ประกอบปรากฏขึ้นเนื่องจาก CSS แทนที่จะเป็น JS คุณสามารถบังคับใช้:hoverโดยคลิกขวาที่องค์ประกอบในมุมมอง Elements (DOM) ในเครื่องมือ Dev เลือก "Force Element State" แล้วเลือก ": hover"
MMM

คำตอบ:


226

มันค่อนข้างง่ายใน Chrome 38.0.2094.0

นี่คือสิ่งที่จะมีลักษณะดังนี้:

เป็นขั้นเป็นตอน:

  1. เปิด DevTools ในแผง Sources
  2. ทำให้คำแนะนำเครื่องมือปรากฏขึ้นโดยวางเมาส์เหนือปุ่ม
  3. กด F8 เพื่อหยุดหน้า
  4. สลับไปที่แผงองค์ประกอบและใช้ไอคอนแว่นขยายที่ด้านบนซ้ายเพื่อเลือกคำแนะนำเครื่องมือ

หากคำแนะนำเครื่องมือปรากฏขึ้นเนื่องจาก CSS สิ่งที่คุณสามารถทำได้ในกรณีนั้นมีดังนี้

เป็นขั้นเป็นตอน:

  1. เปิด DevTools
  2. เลือกองค์ประกอบทริกเกอร์ในเครื่องมือ dev (ลิงค์)
  3. คลิกขวาและเลือก "สถานะองค์ประกอบบังคับ" และเลือก ": hover"
  4. ตรวจสอบคำแนะนำเครื่องมือ CSS

1
@YuriyGalanter สามารถดูได้จากไอคอนสปายกลาสที่ด้านบนซ้าย เพียงคลิกที่ไอคอนจากนั้นคลิกที่คำแนะนำ :)
Šime Vidas

3
ใช่ฉันเพิ่ม GIF เพื่อให้ง่ายต่อการดูว่าฉันกำลังทำอะไรอยู่
Some Guy

2
@DonnyP ฉันใช้byzanz-record. sudo apt-get install byzanzมันเป็นแพคเกจที่คุณจะได้รับด้วย
Some Guy

5
นอกจากนี้ยังมีLICEcapซึ่งบันทึกส่วนหนึ่งของหน้าจอโดยตรงใน GIF ที่ได้รับการปรับให้เหมาะสมเป็นพิเศษ Windows, OS X และ Linux
อิสระ

2
@ bfred.it LICEcap ไม่พร้อมใช้งานสำหรับ Linux ดูปัญหา Github นี้ในหัวข้อ ดูเหมือนว่าคนที่มีความสำเร็จในการทำงานกับไวน์
Isaac Gregson

15

ทั้ง Safari และ Chrome เว็บของสารวัตรเสนอช่องทำเครื่องหมายที่คุณสามารถสลับ:active, :focus, :hoverและ:visitedสถานะขององค์ประกอบ การใช้สิ่งเหล่านี้อาจง่ายยิ่งขึ้น

Safari:

ช่องทำเครื่องหมายใน Safari

โครเมียม:

ช่องทำเครื่องหมายใน Chrome


5
คำแนะนำเครื่องมือไม่ได้ถูกเรียกใช้โดย:hoverสไตล์
Šime Vidas

2
Firebug บน Firefox มีสิ่งเดียวกัน (ลบ:visitedซึ่ง จำกัด ไว้เพื่อป้องกันการสอดแนม) - บนแท็บ HTML จะอยู่ในเมนูแบบเลื่อนลง "รูปแบบ" ทางด้านขวา
Izkata

1
@Izkata สำหรับ Firefox ของเครื่องมือสำหรับนักพัฒนาพื้นเมืองคลิกขวาที่องค์ประกอบในการสวดมนต์หรือต้นไม้ HTML / DOM และเลือกจาก:hover, หรือ:active :focus
ราคา Kiran

4

นอกจากนี้ยังมีวิธีที่ยุ่งยากอีกวิธีหนึ่ง:

  1. ไปที่องค์ประกอบที่ทำให้คำแนะนำเครื่องมือของคุณปรากฏขึ้น
  2. คลิกขวาเพื่อเปิดเมนูตามบริบท
  3. เลื่อนเมาส์ไปที่หน้าต่างเครื่องมือ dev แล้วคลิกซ้ายที่ใดก็ได้ในแผงเครื่องมือ dev

คำแนะนำเครื่องมือของคุณจะยังคงมองเห็นได้จากนั้นคุณจะสามารถตรวจสอบได้ในแท็บองค์ประกอบ

ทดสอบบน Chrome ดูเหมือนจะไม่ทำงานบน Firefox


1
นี่คือวิธีที่ฉันเคยทำในอดีต แต่คำตอบของ @ SomeGuy คือวิธีที่ดีที่สุดและง่ายที่สุด
John Washam

@JohnDubya ไม่จริงไม่จริง อาจเป็นวิธีทางการ แต่ไม่ง่ายกว่านั้นอย่างแน่นอน มีขั้นตอนที่เกี่ยวข้องมากเกินไป
MiniRagnarok

นี่คือสิ่งที่ฉันทำตามปกติ แต่มันก็ไม่ได้ผลเสมอไป
Synetech

3

ในขณะที่คำตอบของ @ SomeGuyนั้นยอดเยี่ยม (t-up สำหรับ gif แบบเคลื่อนไหว) เป็นทางเลือกที่คุณสามารถทำได้โดยใช้โปรแกรม เพียงเปิดคอนโซลและพิมพ์ชื่อเหตุการณ์

document.getElementById('id').dispatchEvent(new Event('event-type'));

(ด้วยไวยากรณ์เฉพาะจาวาสคริปต์ที่แท้จริงอาจแตกต่างกันไปตามเบราว์เซอร์)

ง่ายยิ่งขึ้นด้วย jQuery:

$('#id').trigger('event-type');

ในตัวอย่างของคุณ ( http://getbootstrap.com/javascript/#tooltips ) เปิดคอนโซลแล้วพิมพ์ตัวอย่างเช่น:

$("button:contains('Tooltip on right')").mouseenter();

และคำแนะนำเครื่องมือจะปรากฏใน DOM และสามารถตรวจสอบ / แก้ไขได้ด้วยตนเอง:

<div style="top: 14406.9px; left: 1048.25px; display: block;"
id="tooltip952596" class="tooltip fade right in" role="tooltip">
<div style="" class="tooltip-arrow"></div>
<div class="tooltip-inner">Tooltip on right</div></div>

ในขณะที่การแสดงความคิดเห็นถ้าคุณย้ายตัวชี้เมาส์ไปที่กรอบหน้าคุณสามารถเรียกกิจกรรมอื่น ๆ mouseoutเช่น เพื่อป้องกันสิ่งนี้คุณสามารถกดF8(ตามคำตอบตามข้อตกลง) หรือพิมพ์debugger;(ซึ่งเทียบเท่ากับสคริปต์)


1
ในขณะที่ตรวจสอบองค์ประกอบคุณยังสามารถทริกเกอร์เหตุการณ์อื่น ๆ ได้ (เช่นmouseout) ดังนั้นจึงไม่สามารถแก้ปัญหาได้ตั้งแต่แรก คุณต้องค่อนข้างระมัดระวังในการเลือก แต่เป็นอีกแนวทางหนึ่ง
MMM
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.