Greasy Fork 还支持 简体中文。

tab tools

some tools

目前為 2024-10-14 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name tab tools
  3. // @name:zh-CN 标签页小工具
  4. // @namespace http://tampermonkey.net/
  5. // @version 2024Oct14-737pm
  6. // @description some tools
  7. // @description:zh-cn 会用到的
  8. // @author onionycs
  9. // @run-at document-start
  10. // @match *://*/*
  11. // @grant GM_registerMenuCommand
  12. // @require http://code.jquery.com/jquery-3.x-git.min.js
  13. // @license MIT
  14. // ==/UserScript==
  15.  
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. document.addEventListener('keydown', function(event) {
  21. if (event.key === ']'||event.key === '】') {
  22. //50屏
  23. var ddd;
  24. ddd=findOnce();
  25. while(ddd.length>0){
  26. ddd=findOnce();
  27. $(ddd[0]).find('.catalogue__item-collapse:not(.collapsed)').first().click();
  28. console.error('ddd.length= '+ddd.length+' 折叠了 '+$(ddd[0]).find('.text').text());
  29. }
  30. }
  31. });
  32.  
  33.  
  34.  
  35. /* globals jQuery, $, waitForKeyElements */
  36. GM_registerMenuCommand("折叠目录并伪装", adjustSVISVI);
  37. GM_registerMenuCommand("鸭鸭切换为java", adjustSSPNOTE);
  38. GM_registerMenuCommand("camouflage cooper", faker);
  39. GM_registerMenuCommand("移除标签页所有标题", removeName);
  40.  
  41.  
  42. function removeName() {
  43. var head = document.getElementsByTagName('head')[0];
  44.  
  45. // 获取所有<title>标签
  46. var titles = head.getElementsByTagName('title');
  47.  
  48. // 遍历<title>标签并删除
  49. for (var i = 0; i < titles.length; i++) {
  50. head.removeChild(titles[i]);
  51. }
  52. }
  53.  
  54. function adjustSSPNOTE() {
  55. var $ = unsafeWindow.jQuery;
  56. console.log("start");
  57. $('div[role="combobox"]')[0].click();
  58. var id=$('div[role="combobox"]')[0].id+'-option-2';
  59. setTimeout(function() {
  60. // 这里写你希望延迟执行的代码
  61. console.log('执行了延迟300ms的代码');
  62. $('#'+id)[0].click();
  63. }, 300);
  64. document.getElementsByClassName("left-content")[0].style.width = "40%";
  65. document.getElementsByClassName("right-content")[0].style.width = "60%";
  66. console.log("end");
  67. }
  68.  
  69. function findOnce(){
  70. let aaa = $('.collapsible').filter(function() {
  71. return !$(this).find('.collapsed').length;
  72. }).toArray();
  73. let bbb=[];
  74. let cont=0;
  75. for(let i=0;i<aaa.length;i++){
  76. if(cont<=1 ){
  77. if($(aaa[i]).data('source-level')=='1'){
  78. cont++;
  79. if(cont==2){
  80. break;
  81. }
  82. }
  83. bbb.push(aaa[i]);
  84. }
  85. }
  86. bbb.sort(function(a, b) {
  87. // 使用.data()方法获取每个元素的data-source-level值
  88. // 注意:.data()返回的是数字类型,所以我们可以直接进行比较
  89. var levelA = $(a).data('source-level');
  90. var levelB = $(b).data('source-level');
  91.  
  92. // 如果levelA小于levelB,则返回正数,使levelB排在前面
  93. // 如果levelA大于levelB,则返回负数,使levelA排在前面
  94. // 如果它们相等,则返回0
  95. return levelB - levelA; // 从大到小排序
  96. });
  97. return bbb;
  98. }
  99.  
  100. function adjustSVISVI(){
  101. faker();
  102. if (confirm('确认要折叠目录吗?')) {
  103. //50屏
  104. var ccc;
  105. ccc=findOnce();
  106. while(ccc.length>0){
  107. ccc=findOnce();
  108. $(ccc[0]).find('.catalogue__item-collapse:not(.collapsed)').first().click();
  109. console.error('ccc.length= '+ccc.length+' 折叠了 '+$(ccc[0]).find('.text').text());
  110. }
  111. }
  112. }
  113.  
  114. function faker() {
  115. // 假设新的favicon图标URL是'new-favicon.ico'
  116. var newFaviconUrl = 'https://img-ys011.didistatic.com/static/cooper_cn/ico-dbook.png';
  117. //var newFaviconUrl = 'file:///users/didi/downloads/wiki.ico';
  118.  
  119.  
  120. // 创建一个新的<link>元素
  121. var link = document.createElement('link');
  122. link.type = 'image/x-icon';
  123. link.rel = 'icon';
  124. link.href = newFaviconUrl;
  125.  
  126. // 查找旧的favicon链接(如果有的话),并移除它
  127. // 注意:这里我们假设只有一个favicon链接,或者我们只关心第一个
  128. // 查找并删除所有rel="shortcut icon"的link元素
  129. var links = document.querySelectorAll('link[rel="shortcut icon"]');
  130. links.forEach(function(link) {
  131. link.remove();
  132. });
  133. // 查找并删除所有rel="shortcut icon"的link元素
  134. links= document.querySelectorAll('link[rel="icon"]');
  135. links.forEach(function(link) {
  136. link.remove();
  137. });
  138.  
  139. // 将新的<link>元素添加到<head>部分
  140. var head = document.head || document.getElementsByTagName('head')[0];
  141. head.appendChild(link);
  142.  
  143. // 注意:在有些情况下,浏览器可能不会立即显示新的favicon
  144. // 这取决于浏览器的缓存策略和实现细节
  145.  
  146. removeName();
  147. var myhead = document.head || document.getElementsByTagName('head')[0];
  148. var title = document.createElement('title');
  149. title.textContent='知识库 - Cooper';
  150. myhead.appendChild(title);
  151. }
  152.  
  153. function replaceTextInNode(node, regex, replacement) {
  154. if (node.nodeType === 3) { // Node.TEXT_NODE
  155. node.textContent = node.textContent.replace(regex, replacement);
  156. } else if (node.nodeType === 1) { // Node.ELEMENT_NODE
  157. Array.from(node.childNodes).forEach(child => {
  158. replaceTextInNode(child, regex, replacement);
  159. });
  160. }
  161. }
  162.  
  163. })();