Disable NYTimes Blog Smooth-Scrolling

Disables the smooth scrolling done by site's script

  1. // ==UserScript==
  2. // @name Disable NYTimes Blog Smooth-Scrolling
  3. // @namespace DisableNYTimesBlogSmoothScrolling
  4. // @description Disables the smooth scrolling done by site's script
  5. // @author jcunews
  6. // @match *://*.nytimes.com/*
  7. // @version 1.0.1
  8. // @grant none
  9. // @run-at document-start
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. var ele = document.createElement("SCRIPT");
  14.  
  15. ele.text = "(" + (function() {
  16.  
  17. var orgKeyDownHandler;
  18. //save original document's addEventListener function
  19. var docAddEventListener = document.addEventListener;
  20.  
  21. //our keydown handler
  22. function newKeyDownHandler(ev) {
  23. //check key pressed
  24. switch (ev.key) {
  25. case "PageDown":
  26. case "PageUp":
  27. case " ": //spacebar
  28. //don't call original handler for these keys
  29. break;
  30. default:
  31. //call original handler for other keys
  32. return orgKeyDownHandler.apply(this, arguments);
  33. }
  34. }
  35.  
  36. //hook document's addEventListener function
  37. document.addEventListener = function(name, func, capture) {
  38. if ((name === "keydown") && !orgKeyDownHandler) {
  39. //use our handler for keydown event
  40. orgKeyDownHandler = func; //save original handler
  41. func = newKeyDownHandler; //replace it with our handler
  42. }
  43. return docAddEventListener.apply(this, arguments);
  44. };
  45.  
  46. }).toString() + ")()";
  47.  
  48. document.head.appendChild(ele);
  49. })();