多選框伴侶

Ctrl+Alt點擊全選多選框,Alt加鼠標懸停選擇多選框,Shift選擇兩個多選框之間的所有多選框

  1. // ==UserScript==
  2. // @name Select All Checkboxes
  3. // @name:zh-CN 多选框伴侣
  4. // @name:zh-TW 多選框伴侶
  5. // @namespace hoothin
  6. // @version 0.6.2
  7. // @description A mate for checkbox, select all checkboxes by press Ctrl+Alt+mouse1, or select checkboxes with mouse over by press Alt, or select checkboxes between 2 marks by press Shift.
  8. // @description:zh-CN Ctrl+Alt点击全选多选框,Alt加鼠标悬停选择多选框,Shift选择两个多选框之间的所有多选框
  9. // @description:zh-TW Ctrl+Alt點擊全選多選框,Alt加鼠標懸停選擇多選框,Shift選擇兩個多選框之間的所有多選框
  10. // @author Hoothin
  11. // @include http*://*/*
  12. // @require https://unpkg.com/jquery@3.7.1/dist/jquery.min.js
  13. // @grant GM_registerMenuCommand
  14. // @grant GM.registerMenuCommand
  15. // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=rixixi@sina.com&item_name=Greasy+Fork+donation
  16. // @contributionAmount 1
  17. // ==/UserScript==
  18.  
  19. (function() {
  20. 'use strict';
  21. var type=navigator.appName;
  22. var lang = null;
  23. if (type=="Netscape"){
  24. lang = navigator.language;
  25. }else{
  26. lang = navigator.userLanguage;
  27. }
  28. var langStr = lang.substr(0,2);
  29. if (langStr == "zh"){
  30. langStr = "全选";
  31. }else{
  32. langStr = "SelectAll";
  33. }
  34. var _GM_registerMenuCommand;
  35. if(typeof GM_registerMenuCommand!='undefined'){
  36. _GM_registerMenuCommand=GM_registerMenuCommand;
  37. }else if(typeof GM!='undefined' && typeof GM.registerMenuCommand!='undefined'){
  38. _GM_registerMenuCommand=GM.registerMenuCommand;
  39. }
  40. if(typeof _GM_registerMenuCommand=='undefined')_GM_registerMenuCommand=(s,f)=>{};
  41. _GM_registerMenuCommand(langStr, selectAll);
  42. var selector="input:checkbox:enabled,.checkbox";
  43.  
  44. function selectAll(){
  45. $(selector).click();
  46. }
  47.  
  48. var preObj;
  49. var mouseDownHandler = function (event) {
  50. let self = this, doc = document;
  51. if (this.shadowRoot && this.shadowRoot.activeElement) {
  52. if (this.shadowRoot.activeElement.type != "checkbox" || !/^input$/i.test(this.shadowRoot.activeElement.nodeName)) {
  53. return;
  54. } else {
  55. self = this.shadowRoot.activeElement;
  56. doc = this.shadowRoot;
  57. }
  58. }
  59. if(!event.shiftKey&&event.altKey&&event.ctrlKey){
  60. $(selector, doc).click();
  61. self.click();
  62. }else if(event.shiftKey&&!event.altKey&&!event.ctrlKey){
  63. var curParent=self;
  64. var preParent=preObj;
  65. for(var i=0;i<5;i++){
  66. curParent=curParent.parentNode;
  67. preParent=preParent.parentNode;
  68. if(!curParent||!preParent) {
  69. preObj=self;
  70. return;
  71. }
  72. if(curParent==preParent){
  73. var target=self;
  74. var find=false;
  75. $(curParent).find(selector).each(function(){
  76. if(this==preObj||this==target){
  77. if(find){
  78. find=false;
  79. return;
  80. }
  81. find=true;
  82. }else if(find){
  83. this.click();
  84. }
  85. });
  86. break;
  87. }
  88. }
  89. }
  90. preObj=self;
  91. };
  92. var mouseEnterHandler = function (event) {
  93. if(!event.shiftKey&&event.altKey&&!event.ctrlKey){
  94. this.click();
  95. }
  96. };
  97. $(document).on("mousedown", selector, mouseDownHandler);
  98. $(document).on("mouseup", "#download-all-content", mouseDownHandler);
  99. $(document).on("mouseenter", selector, mouseEnterHandler);
  100. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址