Libvio Auto Click Reminder

自动点击libvio网站的"我记住啦"按钮

  1. // ==UserScript==
  2. // @name Libvio Auto Click Reminder
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 自动点击libvio网站的"我记住啦"按钮
  6. // @author AlexShui
  7. // @include /^https?:\/\/(.*\.)?libvio\..+\//
  8. // @match *libvio*
  9. // @grant none
  10. // @run-at document-idle
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. function clickRememberButton() {
  17. // 查找弹出框
  18. const popup = document.querySelector('div.popup[id="note"]');
  19. if (popup && popup.style.display === 'block') {
  20. // 查找按钮
  21. const button = popup.querySelector('div.popup-footer > span.popup-btn');
  22. if (button) {
  23. console.log('找到"我记住啦"按钮,正在点击...');
  24. button.click();
  25. return true;
  26. }
  27. }
  28. return false;
  29. }
  30.  
  31. function checkAndClick() {
  32. // 尝试点击按钮
  33. if (clickRememberButton()) {
  34. console.log('已成功点击"我记住啦"按钮');
  35. return;
  36. }
  37.  
  38. // 如果没找到,设置一个观察器来监测DOM变化
  39. const observer = new MutationObserver(function(mutations) {
  40. if (clickRememberButton()) {
  41. observer.disconnect();
  42. }
  43. });
  44.  
  45. // 开始观察整个文档及其子节点的变化
  46. observer.observe(document, {
  47. childList: true,
  48. subtree: true
  49. });
  50.  
  51. // 设置超时以防元素永远不出现
  52. setTimeout(() => {
  53. observer.disconnect();
  54. console.log('等待超时,未找到"我记住啦"按钮');
  55. }, 10000); // 10秒超时
  56. }
  57. checkAndClick();
  58. // alert("have run js.")
  59. // 页面加载完成后开始检查
  60. window.addEventListener('load', function() {
  61. setTimeout(checkAndClick, 1000); // 延迟1秒开始检查,确保所有元素加载完成
  62. });
  63.  
  64. // 也监听SPA的路由变化
  65. let lastUrl = location.href;
  66. setInterval(() => {
  67. const currentUrl = location.href;
  68. if (currentUrl !== lastUrl) {
  69. lastUrl = currentUrl;
  70. setTimeout(checkAndClick, 1000);
  71. }
  72. }, 500);
  73. })();