Greasy Fork is available in English.

我看到哪里啦?!

让页面重新滚到上次阅读的位置。

  1. // ==UserScript==
  2. // @name 我看到哪里啦?!
  3. // @namespace 回到上次阅读位置
  4. // @match *://*/*
  5. // @grant none
  6. // @version 1.0
  7. // @author -
  8. // @description 让页面重新滚到上次阅读的位置。
  9. // ==/UserScript==
  10.  
  11. const scrollToBottomAndThenReTry = (d, oldPos, times=0)=>{
  12. if(d.scrollHeight >= oldPos){
  13. d.scrollTop = oldPos
  14. return
  15. }
  16. if(++times > 20) return
  17. d.scrollTop = d.scrollHeight
  18. window.setTimeout(()=>{
  19. scrollToBottomAndThenReTry(d, oldPos, times)
  20. }, 3000)
  21. }
  22.  
  23. window.addEventListener('load', ()=>{
  24. const keyName = 'lastPosWhichISee-'+window.location.href
  25. const oldPos = localStorage.getItem(keyName)
  26. if(!oldPos) return
  27. const d = document.documentElement
  28. scrollToBottomAndThenReTry(d, oldPos)
  29. })
  30. window.addEventListener('scroll', ()=>{
  31. const keyName = 'lastPosWhichISee-'+window.location.href
  32. const nowPos = document.documentElement.scrollTop
  33. if(nowPos){
  34. localStorage.setItem(keyName, nowPos)
  35. }
  36. })