多选框伴侣

Ctrl+Alt点击全选多选框,Alt加鼠标悬浮选择多选框,Shift选择两个多选框之间的所有多选框

当前为 2016-10-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Select All Checkboxs
  3. // @name:zh-CN 多选框伴侣
  4. // @name:zh-TW 多選框伴侶
  5. // @namespace hoothin
  6. // @version 0.3
  7. // @description Select all checkboxs by press Ctrl+Alt+mouse1,Or select checkboxs with mouse over by press Alt,Or select checkbox 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 http://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js
  13. // @grant GM_registerMenuCommand
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18. var type=navigator.appName;
  19. var lang = null;
  20. if (type=="Netscape"){
  21. lang = navigator.language;
  22. }else{
  23. lang = navigator.userLanguage;
  24. }
  25. var langStr = lang.substr(0,2);
  26. if (langStr == "zh"){
  27. langStr = "全选";
  28. }else{
  29. langStr = "SelectAll";
  30. }
  31. GM_registerMenuCommand(langStr, selectAll);
  32.  
  33. function selectAll(){
  34. $("input:checkbox:enabled").click();
  35. }
  36.  
  37. var selectObj = $("input:checkbox:enabled");
  38. var preObj;
  39. selectObj.mousedown(function (event) {
  40. if(!event.shiftKey&&event.altKey&&event.ctrlKey){
  41. selectObj.click();
  42. this.click();
  43. }else if(event.shiftKey&&!event.altKey&&!event.ctrlKey){
  44. var curParent=this;
  45. var preParent=preObj;
  46. for(var i=0;i<5;i++){
  47. curParent=curParent.parentNode;
  48. preParent=preParent.parentNode;
  49. if(!curParent||!preParent)return;
  50. if(curParent==preParent){
  51. var target=this;
  52. var find=false;
  53. $(curParent).find("input:checkbox:enabled").each(function(){
  54. if(this==preObj||this==target){
  55. if(find){
  56. find=false;
  57. return;
  58. }
  59. find=true;
  60. }else if(find){
  61. this.click();
  62. }
  63. });
  64. break;
  65. }
  66. }
  67. }
  68. preObj=this;
  69. });
  70. selectObj.mouseover(function (event) {
  71. if(!event.shiftKey&&event.altKey&&!event.ctrlKey){
  72. this.click();
  73. }
  74. });
  75. })();