Jak włączyć przewijanie w witrynie, która wyłączyła przewijanie? [Zamknięte]


114

Jak szybko ponownie włączyć przewijanie w witrynie, która wyłączyła przewijanie za pomocą JavaScript? window.scrollBy (0, 100) działa dobrze, ale wydaje się, że nie wiem, jak powiązać to z klawiszami lub przewijaniem myszy.


4
W dużej mierze zależy od tego, jak został wyłączony. Zdobądź to pierwszy.
Joseph,

1
Czy to Twoja własna witryna? Albo próbujesz to zrobić na kimś innym?
designcise,

17
Prawdopodobnie poprzez ustawienie overflow: autona bodyelemencie. Możesz to przetestować document.body.style.overflow = 'auto'lub po prostu ustawić jako styl CSS w narzędziach programistycznych.
Bryan Downing,

1
@JosephtheDreamer niezależnie od tego, jak zostało wyłączone window.scrollBy (0,100) działa dla mnie na wszystkich stronach testowych, więc próbuję znaleźć skuteczny sposób przypisania tego do przycisku lub kółka przewijania.
CodeCamper,

Co na temat stron internetowych, gdzie window.scrollBy(0,100)nie nie działa?
Michael

Odpowiedzi:


140

W przeglądarce takiej jak Chrome itp .:

  1. Sprawdź kod (np. W prasie Chrome ctrl + shift + c);
  2. Ustaw overflow: visiblena elemencie ciała (np. <body style="overflow: visible">)
  3. Znajdź / Usuń wszelkie skrypty JavaScript, które mogą rutynowo sprawdzać usunięcie overflowwłaściwości:
    • Aby znaleźć taki kod JavaScript, możesz na przykład przejrzeć kod lub kliknąć inny kod JavaScript w konsoli debugera kodu i nacisnąć backspacena klawiaturze, aby go usunąć.
    • Jeśli masz problemy ze znalezieniem go, możesz po prostu spróbować usunąć kilka skryptów JavaScripts (możesz oczywiście po prostu nacisnąć, ctrl + zaby cofnąć dowolny usunięty kod lub nacisnąć przycisk odświeżania, aby zacząć od nowa).

Powodzenia!


11
Śledzisz te profile LinkedIn Nie jesteś zalogowany w trybie incognito? Czas na konsole, kochanie. <body>: ☐ o̶v̶e̶r̶f̶l̶o̶w̶:̶ ̶h̶i̶d̶d̶e̶n̶; <section>nakładka może iść; wreszcie div # zwolennikiem model : ☐ 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 i ... Puf!
Leo

13
Oprócz ustawienia overflow: visiblemusiałem też usunąć position: fixed. Dzięki!
wjandrea

2
Byłem w witrynach, w których trzeba usuwać style wbudowane style="overflow:hidden"z tagu body.
Lei-Lonnie

1
Zamiast znaleźć skrypt java, po prostu zastosowałem tę szybką sztuczkę, aby całkowicie wyłączyć skrypt java i to zadziałało: developers.google.com/web/tools/chrome-devtools/javascript/ ...
user1084563

2
Znaleziono także strony, które dodają overflow: hiddenstyl do <html>samego tagu u góry strony. Zmień to w overflow: visibleteż.
Boud,

45

dodanie overflow:visible !important;do elementu body zadziałało dla mnie.


1
OP zażądał javascript. To jest CSS.
Liran Funaro

21
@LiranFunaro Twój punkt widzenia? Ten kod CSS można wstawić za pomocą JavaScript:document.body.style.overflow = "visible !important";
zreformowany

Oto twoja odpowiedź, @LiranFunaro
Kamal Reddy

30

Pomyślałem, że komuś w tym pomogę.

Zwykle możesz to po prostu wkleić w konsoli.

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

Lub wersja tylko javascript:

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


2
Kiedy to nie zadziałało na jednej konkretnej stronie, znalazłem podobny skrypt z możliwością dodawania zakładek, który działał w tej bardzo przydatnej odpowiedzi QA, która zadziałała : 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; Strona, do której prowadzi łącze, sugeruje również próbę wyłączenia witryn z wyłączania pasków przewijania przez ustawienie wartości dom.disable_window_open_feature.scrollbarstrue w about.config .
Joshua Goldberg

27

Możesz wkleić następujący kod do konsoli, aby przewijać w górę / w dół za pomocą klawiszy a / z klawiatury. Jeśli chcesz ustawić własne klucze, możesz odwiedzić stronę, aby uzyskać kody kluczy

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;

1
To jest idealne
Alex L

7

Wybierz Body za pomocą chrome dev tools (Inspect) i zmień w CSS overflow: visible,

Jeśli to nie zadziała, sprawdź poniższy plik css, jeśli html, body jest ustawione jako przepełnienie: ukryte, zmień je jako widoczne


3

W przypadku przeglądarki Chrome jednym ze sposobów automatycznego ponownego włączenia przewijania w witrynie jest pobranie rozszerzenia Tampermonkey , a następnie dodanie tego skryptu (kliknij „Zainstaluj ten skrypt”).

Ogólnie rzecz biorąc, jeśli masz adres URL skryptu, którego adres URL kończy się na .user.js i masz zainstalowany program Tampermonkey, możesz wkleić go do Omniboksa Chrome, aby zainstalować skrypt. Więcej sposobów instalowania skryptów za pomocą Tampermonkey można znaleźć tutaj.


2

Spróbuj tego:

window.onmousewheel = document.onmousewheel = null
window.ontouchmove = null 
window.onwheel = null 

1
Może to nie zawsze działać, jeśli istnieje skrypt odpytywający, który ponownie przypisuje wartości do któregokolwiek z nich, ale dobra opcja!
designcise

@designcise to byłoby bardzo przebiegłe z ich strony. Zawsze możesz jednak ankietować szybciej. :)
Adam Thompson,

1
@AdamThompson Widziałem, że niektóre witryny to robią ... zwłaszcza niektóre witryny, które są bardzo
zdeterminowane,

2

Wypróbuj kod ur, aby dodać `` skrypt '' to ostatnia linia lub spraw, aby konsola testowa ur (F12) włączała przewijanie

<script>
(function() {
  for (div=0; div < document.querySelectorAll('div').length; div++) {
    document.querySelectorAll('div')[div].style.overflow = "auto";
  };
})();
</script>

0

Ostatnią rzeczą jest sprawdzenie detektorów zdarzeń> „scroll” i przetestowanie ich usuwania.

Nawet jeśli usuniesz JavaScript, który je utworzył, słuchacze będą się trzymać i zapobiegać przewijaniu.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.