Inspeccionar menús desplegables en el nuevo Chrome

85

Estoy en Chrome versión 41.0.2272.101 m (más reciente), y esta actualización es un desastre. Ellos dicen, cuando tienes el inspector abierto, que cualquier cambio de DOM parpadeará con púrpura en el elemento cambiado (como en Firefox), pero ahora no puedo inspeccionar ningún objeto suspendido (también como en FF, por eso no me gusta para usarlo al desarrollar el front-end).

Estoy hablando de eventos activados por js, como superfish, por ejemplo. Antes, podía desplazar el menú y cubrir el menú con el inspector, y el menú permanecería abierto, y podía ir al inspector para ver qué pseudoelementos se crean, cambiar los rellenos y demás directamente, y ver el cambio. Ahora, cuando coloco el cursor sobre el menú y hago clic con el botón derecho del ratón para inspeccionarlo, el menú se cierra y no puedo inspeccionarlo.

Intenté arrastrar al inspector, pero nada ayudó. Esta nueva "característica" es muy molesta. ¿Hay alguna manera de inspeccionar los eventos activados por js, sin poner puntos de interrupción en los elementos (lo cual funciona, pero es un poco doloroso)?

dingo_d
fuente

Respuestas:

128

Desplácese sobre el elemento con el mouse y presione F8 (esto solo funcionará en Chrome) para pausar la ejecución del script. El estado de desplazamiento permanecerá visible para usted. Si está en una Mac, es posible que deba abrir las preferencias del sistema y marcar la casilla de verificación "Usar todos los F1, F2, etc." (o simplemente use fn + F8).

A veces, solo funciona si se encuentra en la pestaña Fuentes del inspector.

icekomo
fuente
Creo que solucionaron este problema mientras tanto. Puedo agregar un punto de interrupción, lo sé, pero la solución más fácil es pasar el cursor, llevar el inspector y manipular el inspector mientras el cursor está activo y todo el sitio no está congelado.
dingo_d
6
En Mac, puede simplemente presionar fn + F8, mientras su inspector está abierto en la pestaña Fuentes
Dmitry Shvedov
17
Últimamente, después de presionar F8, el hover primero desaparece y luego detiene la ejecución. Es increíblemente frustrante, no sé por qué sucede esto.
andras
3
Quizás esto sea obvio, pero tuve que hacerlo en la pestaña 'fuentes' para que esto funcione. OSX y Chrome (74.0.3729.157)
dennis
Si el acceso directo no funciona incluso con la pestaña Fuentes abierta, simplemente haga clic en el botón "Pausar" directamente en la pestaña fuentes
jpenna
88

Dependiendo del tipo de elemento del menú, encontré este problema con los menús de entrada desplegables. La razón por la que desaparece cuando lo inspecciono es porque blursiempre se activa un evento en el elemento cuando hago clic en cualquier lugar fuera del elemento.

Una forma en que pude inspeccionar el elemento es para evitar que se active el evento de desenfoque es eliminando el detector de eventos de desenfoque:

  • Inspeccione el elemento de entrada en Chrome
  • Vaya a la pestaña Event Listeners y elimine el evento de desenfoque ingrese la descripción de la imagen aquí

Una vez que se elimina el evento de desenfoque, puede abrir el menú e inspeccionarlo sin desaparecer

mmohammad
fuente
3
Eso podría funcionar para los elementos de entrada. Intenté con un elemento seleccionado, todavía desaparece
Ralf
Eres un salvavidas 🙏🏻
aditya
52

En Chrome, presione F12 para abrir la consola del desarrollador, luego haga clic en Configuración (icono de rueda dentada) o presione F1:

Configuración de herramientas de desarrollo

luego busque y marque la opción "Emular una página enfocada".

Marque la opción Emular una página enfocada

Dijo Madi
fuente
5
gracias, esta es la respuesta más simple y fácil hasta ahora
beeftosino
2
Esta es la respuesta correcta. Tomó años encontrarlo y ahorró tanta tortura, esto es raro como el oro.
asiop
1
Esta es la mejor respuesta sin trucos. Oro puro
Darkowic
Esta fue la opción más fácil, pero parece que se eliminó de la versión 86 de Chrome en adelante :(
alumno
13

En Mac, puede presionar cmd+ \para pausar el script después de haber abierto el menú desplegable. Luego puede usar shift+ cmd+ cpara inspeccionar elementos.

baja
fuente
1
¡Fantástico! Nota: primero debe estar en la pestaña Fuentes en las herramientas de desarrollo. De lo contrario, cuando presiona cmd- \, el cursor se cierra mientras lo lleva allí.
GreenAsJade
7

Ahora, cuando coloco el cursor sobre el menú y hago clic con el botón derecho del ratón para inspeccionarlo, el menú se cierra y no puedo inspeccionarlo.

Enfrenté el mismo problema y lo que usé fue la opción Expandir recursivamente en las herramientas de desarrollo de Chrome:

Los pasos son:

  1. Inspeccione el campo desplegable
  2. Encuentra el DOM dinámico (el resaltado morado)
  3. Haga clic con el botón derecho del mouse en ese DOM dinámico
  4. Elija Expandir recursivamente : ingrese la descripción de la imagen aquí
  5. Podemos ver que todos los elementos están ahí.

Aquí hay una demostración:

ingrese la descripción de la imagen aquí

Raja David
fuente
3

Puede establecer un intervalo que escriba el contenido de un elemento determinado en la consola JS cada segundo. Suelta esto en la consola y abre el menú desplegable.

setInterval(() => 
    console.log(document.querySelector('.Select-menu-outer').outerHTML),
1000)
Adam Libuša
fuente
Perfecto para react-select
RootNode
2

En Firefox

En Inspector, haga clic con el botón derecho en un nodo que contiene el menú desplegable, seleccione:

Romper en ...> Modificación del subárbol

Esto detendrá la ejecución en el momento en que el menú desplegable ... bueno ... se despliega.

Dmitry Shvedov
fuente
0

Creo que puedes usar el Editor de CSS en Chrome para aplicar un estado, por ejemplo, el estado de 'hover'.

En las herramientas de desarrollo, selecciona un elemento. A la derecha tienes un cuadrado con una flecha encima. Haga clic en eso y puede elegir un estado. Por ejemplo, elija hovered y verá tanto su ventana como la actualización de CSS como si el elemento estuviera flotando en este momento.

Steven Lemmens
fuente
2
Sí, pero eso solo activará el estado CSS que puso manualmente como element:hover, o element:activeo element:focus. Mi cambio se basa en js. Un complemento agregará una clase y cambiará el estilo (como lo hace superfish, por ejemplo). Así que el cambio de estado no ayudará aquí ...
dingo_d
0

Ninguno de los remedios antes mencionados funcionó para mí. Como nuestro menú desplegable (basado en React) se cerrará con cualquier clic (derecho o izquierdo), descubrimos la siguiente solución:

  • En Chrome Open Developer Tools
  • primero haga clic en el menú desplegable en estado contraído y deje que se expanda con opciones
  • luego, debajo de la sección de elementos, haga clic derecho en el nodo div (asegúrese de no hacer clic izquierdo antes de hacer clic derecho), que contiene detalles de los elementos desplegables
  • Luego seleccione la opción ' Expandir recursivamente '
  • Luego se mostraron los detalles requeridos ingrese la descripción de la imagen aquí
usuario2451016
fuente
0

Cambiar HTML en la ventana Elementos

  • Desplácese sobre el menú que desea mantener abierto en el modo Inspeccionar .
  • Observe los cambios HTML en el elemento en la ventana Elemento entre los estados abierto / cerrado del menú. La mayoría de las veces se trata de un cambio de estilo.
  • Cuando descubra qué hace que el menú se abra y se cierre (en este ejemplo, una clase llamada "dropdownOpen" agregada y eliminada entre los estados del menú), haga doble clic en el HTML en la pestaña Elemento y realice los cambios necesarios. En este ejemplo, agregamos la clase "dropdownOpen" al <li>elemento.

ingrese la descripción de la imagen aquí

Usando jQuery en la ventana de la consola

Si necesita repetir este comportamiento, puede hacer uso de jQuery. Usted selecciona el elemento utilizando jQuery y hacer los cambios necesarios en la consola . En este ejemplo, seleccionamos el elemento por su id y le agregamos la clase "dropdownOpen" así:

jQuery("#menu-item-11012").addClass("dropdownOpen");

ingrese la descripción de la imagen aquí

Arda Basoglu
fuente