Bing TopScroll Blocker

防止Bing自动滚动到顶部

  1. // ==UserScript==
  2. // @name Bing TopScroll Blocker
  3. // @namespace https://tampermonkey.net/
  4. // @version 0.4.0
  5. // @description 防止Bing自动滚动到顶部
  6. // @author FakerJMS
  7. // @match http*://*.bing.com/*
  8. // @icon https://www.bing.com/sa/simg/favicon-trans-bg-blue-mg.ico
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. //
  16. let fk_timer_id = 0;
  17. //
  18. let fk_origin_scrollTo = window.scrollTo;
  19. //
  20. let fk_new_scrollTo = function(x, y) {
  21. // TODO
  22. };
  23.  
  24. // 禁用"滚动到顶部"
  25. function disable_scrollToTop() {
  26. if (fk_timer_id > 0) {
  27. clearTimeout(fk_timer_id);
  28. fk_timer_id = 0;
  29. }
  30. window.scrollTo = fk_new_scrollTo;
  31. }
  32.  
  33. // 使能"滚动到顶部"
  34. function _enable_scrollToTop() {
  35. window.scrollTo = fk_origin_scrollTo;
  36. }
  37.  
  38. // 延时使能"滚动到顶部"
  39. function enable_scrollToTop() {
  40. fk_timer_id = setTimeout(_enable_scrollToTop, 1000);
  41. }
  42.  
  43. // 监听"窗口获取焦点"事件, 使能"滚动到顶部"
  44. window.addEventListener('focus', enable_scrollToTop);
  45. // 监听"鼠标进入窗口"事件, 使能"滚动到顶部"
  46. document.addEventListener('mouseenter', enable_scrollToTop);
  47. // 监听"窗口失去焦点"事件, 禁用"滚动到顶部"
  48. window.addEventListener('blur', disable_scrollToTop);
  49. })();