¿Cómo habilitar universalmente el desplazamiento en un sitio web que deshabilitó el desplazamiento?

6 minutos de lectura

Avatar de usuario de CodeCamper
CódigoCamper

¿Cómo volver a habilitar rápida y universalmente el desplazamiento en un sitio web que ha deshabilitado el desplazamiento con JavaScript? (Dado que en realidad hay contenido para desplazarse).

El desplazamiento funciona cuando JavaScript está deshabilitado y, con JavaScript habilitado, window.scrollBy(0, 100) funciona bien, pero no cuando normalmente está vinculado a las teclas o al desplazamiento del mouse.

  • Depende en gran medida de cómo se deshabilitó. Consigue eso primero.

    – Joseph

    7 de septiembre de 2016 a las 1:56

  • ¿Es este su propio sitio web? ¿O estás tratando de hacer esto en otra persona?

    – diseñar con precisión

    7 de septiembre de 2016 a las 2:08

  • Probablemente al establecer overflow: auto sobre el body elemento. Podrías probar esto con document.body.style.overflow = 'auto'o simplemente configúrelo como un estilo CSS en las herramientas de desarrollo.

    –Bryan Downing

    7 de septiembre de 2016 a las 2:08


  • @JosephtheDreamer independientemente de cómo se deshabilitó window.scrollBy(0,100) me funciona en todos los sitios de prueba, por lo que estoy tratando de encontrar una forma efectiva de asignar esto a un botón clave o rueda de desplazamiento.

    – CodeCamper

    7 sep 2016 a las 12:04

  • Algunos usos: position: fixed en el documento (algunas veces de NY)

    – Alexis Paqués

    5 de noviembre de 2020 a las 14:15

avatar de usuario de designcise
diseñar

En un navegador como Chrome, etc.:

  1. Inspeccione el código (por ejemplo, en Chrome presione ctrl + shift + c);
  2. Establecer overflow: visible en body y/o html elemento (por ejemplo, <body style="overflow: visible">)
  3. Encuentre/elimine cualquier código JavaScript que pueda estar verificando rutinariamente la eliminación del overflow propiedad:
  • Para encontrar dicho código JavaScript, podría, por ejemplo, revisar el código o hacer clic en otro código JavaScript en la consola del depurador de código y pulsar backspace en su teclado para eliminarlo.
  • Si tiene problemas para encontrarlo, simplemente puede intentar eliminar un par de JavaScripts (por supuesto, simplemente puede presionar ctrl + z para deshacer cualquier código que elimine, o presione Actualizar para comenzar de nuevo).

¡Buena suerte!

  • Acechando esos perfiles de LinkedIn ¿Modo de incógnito sin iniciar sesión? Es tiempo de consola bebé. <body>: ☐ o̶v̶e̶r̶f̶l̶o̶w̶:̶ ̶h̶i̶d̶d̶e̶n̶; la <section> la superposición puede ir; finalmente div#abogado-modelo: ☐ b̶a̶c̶k̶g̶r̶o̶u̶n̶d̶-̶c̶o̶l̶o̶r̶:̶ ̶r̶g̶b̶a̶(̶0̶,̶0̶,̶0̶,̶0̶.̶5̶)̶. 1, 2 y… ¡Puf!

    – León

    5 de diciembre de 2017 a las 21:21

  • Además de establecer overflow: visibletambién tuve que borrar position: fixed. ¡Gracias!

    – wjandrea

    24/10/2018 a las 20:49

  • He estado en sitios donde tienes que eliminar estilos en línea style="overflow:hidden" de la etiqueta del cuerpo.

    – Lei Lonnie

    19 de marzo de 2019 a las 17:20

  • En lugar de encontrar el script de Java, simplemente seguí este truco rápido para deshabilitar el script de Java por completo y funcionó para mí: desarrolladores.google.com/web/tools/chrome-devtools/javascript/…

    – usuario1084563

    15 mayo 2019 a las 20:56

  • También encontré algunas páginas que están poniendo overflow: hidden estilo en el <html> etiquetarse a sí mismo en la parte superior de la página. Conviertelo overflow: visible también.

    – Zeugma

    6 de enero de 2020 a las 4:19

avatar de usuario de user1274820
usuario1274820

Solo pensé en ayudar a alguien con esto.

Por lo general, puede simplemente pegar esto en la consola.

$("body").css({"overflow":"visible"});

O, la versión de solo javascript:

document.body.style.overflow = "visible";

Editar: el código de Joshua Goldberg de una respuesta de comentario:

Encontré un script similar que se puede agregar a marcadores que funcionó en este muy útil respuesta de control de calidad eso hizo:

var r="html,body{overflow:auto !important;}"; 
var s=document.createElement("style"); 
s.type="text/css"; 
s.appendChild(document.createTextNode(r)); 
document.body.appendChild(s); 
void 0;

  • Cuando esto no funcionó en una página en particular, encontré una secuencia de comandos similar que se puede agregar a marcadores que funcionó en esta muy útil respuesta de control de calidad eso hizo: var r="html,body{overflow:auto !important;}"; var s=document.createElement("style"); s.type="text/css"; s.appendChild(document.createTextNode(r)); document.body.appendChild(s); void 0; La página vinculada también sugiere intentar deshabilitar los sitios para que no deshabiliten las barras de desplazamiento configurando dom.disable_window_open_feature.scrollbars a verdadero en about.config.

    – Josué Goldberg

    28 de noviembre de 2020 a las 0:23

  • ^ Solo quiero aclarar que esto (el comentario justo encima del mío, no la publicación principal) aún funciona en la última versión de Firefox (Edición para desarrolladores). Ninguno de los otros ejemplos funcionó para mí… ¡este sí lo hizo! ¡Muchas gracias @JoshuaGoldberg!

    –Jacob Wheeler

    29 de enero de 2021 a las 19:26


  • Para hacer un bookmarklet, pegue lo siguiente en la sección URL: javascript:(function(){ var r="html,body{overflow:auto !important;}"; var s=document.createElement("style"); s.type="text/css"; s.appendChild(document.createTextNode(r)); document.body.appendChild(s); void 0; })();

    – Aarav Prasad

    21 ago a las 13:51


agregando overflow:visible !important; al elemento del cuerpo funcionó para mí.

  • El OP solicitó javascript. Esto es CSS.

    –Liran Funaro

    15 mayo 2017 a las 21:52

  • @LiranFunaro ¿Tu punto? Este CSS se puede insertar a través de JavaScript: document.body.style.overflow = "visible !important";

    – reformado

    11 de febrero de 2018 a las 2:17

  • Aquí está tu respuesta, @LiranFunaro

    – Kamal Reddy

    18 sep 2020 a las 10:40


  • Funcionó para mí: $(“cuerpo”).style = “overflow:visible !important;”

    – RaZierSarE

    5 abr a las 15:24

Puede pegar el siguiente código en la consola para desplazarse hacia arriba o hacia abajo con las teclas a/z del teclado. Si desea configurar sus propias claves, puede visitar este página para obtener los códigos clave

function KeyPress(e) {
  var evtobj = window.event? event : e
  if (evtobj.keyCode == 90) {
    window.scrollBy(0, 100) 
  }
  if (evtobj.keyCode == 65) {
    window.scrollBy(0, -100) 
  }
}

document.onkeydown = KeyPress;

Seleccione el Cuerpo usando las herramientas de desarrollo de Chrome (Inspeccionar) y cambie en css overflow: visible,

Si eso no funciona, verifique debajo del archivo css si html, el cuerpo está configurado como desbordamiento: oculto, cámbielo como visible

Avatar de usuario de Andrew Roberts
andres roberts

Una última cosa es verificar los detectores de eventos> “desplazarse” y probar eliminarlos.

Incluso si elimina el Javascript que los creó, los oyentes se quedarán y evitarán el desplazamiento.

Avatar de usuario de R. Rincón
R. Rincón

Con Chrome, una forma de volver a habilitar automáticamente el desplazamiento en un sitio web es descargar la extensión TampermonkeyLuego añade este script (haga clic en “Instalar este script”).

En general, si tiene una URL para un script donde la URL termina en .usuario.js y tiene Tampermonkey instalado, puede pegarlo en el Omnibox de Chrome para instalar el script. Se pueden encontrar más formas de instalar scripts con Tampermonkey aquí.

¿Ha sido útil esta solución?