网页鼠标自定义

自定義你的網頁滑鼠樣式,在www.cursor.cc安裝新的滑鼠樣式

  1. // ==UserScript==
  2. // @name 网页鼠标自定义
  3. // @namespace http://tampermonkey.net/MyCursor-MyStyle
  4. // @version 2020.08.06.2
  5. // @description:zh-CN 自定义你的网页鼠标样式,在www.cursor.cc安装新的鼠标样式
  6. // @description:zh-TW 自定義你的網頁滑鼠樣式,在www.cursor.cc安裝新的滑鼠樣式
  7. // @description:en-US Customize your mouse style, install various different mouse styles on www.cursor.cc
  8. // @author PY-DNG
  9. // @include *
  10. // @grant GM_registerMenuCommand
  11. // @grant GM_setValue
  12. // @grant GM_getValue
  13. // @description 自定义你的网页鼠标样式,在www.cursor.cc安装新的鼠标样式
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18. //样式处理部分
  19. let AddStyle = function(NewStyle, SytleId){
  20. if(SytleId && document.getElementById(SytleId)){
  21. document.getElementById(SytleId).remove();
  22. }
  23. let NewStyleElement = document.createElement("style");
  24. NewStyleElement.type = "text/css";
  25. if(SytleId){NewStyleElement.id = SytleId;};
  26. NewStyleElement.appendChild(document.createTextNode(NewStyle));
  27. let HeadElement = document.getElementsByTagName("head")[0];
  28. HeadElement.appendChild(NewStyleElement);
  29. };
  30. //当前域名
  31. let site = window.location.href.replace(/https?:\/\//, '');
  32. site = site.substring(0, site.indexOf('/'));
  33. //默认鼠标样式
  34. let defaultCursor = "body { cursor: url('data:image/x-icon;base64,AAACAAEAICAAAAAAAACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAABgAAAAcAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/ejwF/wAAAAAAAAAAejwF/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejwF/72de/+9nXv/ejwF/3o8Bf+1cWn/tXFp/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/vZ17///jxP+9nXv/vZ17/72de/+1cWn/ejwF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf+9nXv/vZ17/72de/+9nXv/vZ17/7Vxaf96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/2cvK/72de/+9nXv/vZ17/72de/+9nXv//+PE/7Vxaf96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf/Zy8r/2cvK/72de///48T/vZ17/72de/+9nXv/tXFp/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf96PAX/ejwF/72de/+9nXv/ejwF/3o8Bf96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/2cvK/72de/96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/ejwF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejwF/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/tXFp/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf+9nXv/tXFp/3o8Bf96PAX/ejwF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejwF/72de///48T/tXFp/7Vxaf96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/vZ17/72de/+1cWn/ejwF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf//48T/vZ17/3o8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejwF/72de/96PAX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6PAX/ejwF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHo8Bf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////////////////////////////////////////////////////////////////5n///8A////AP///wD///4Af//+AH///wD////D////5///8/////H////wP///8D////B////w////8f////P////3////8='), auto; }";
  35. if(GM_getValue('default', '') === '') {GM_setValue('default', defaultCursor); };
  36. //当前鼠标样式
  37. let myCursor = GM_getValue(site, GM_getValue('default', ''));
  38. //忽略的域名
  39. let ignoreList = GM_getValue('ignoreList', '');
  40. //样式的Element.id
  41. let cursorId = 'mycursor';
  42. //样式应用函数
  43. let applyCursor = function() {
  44. //如果忽略此域名就不添加鼠标样式
  45. if(ignoreList.indexOf(site) !== -1){return; };
  46. /*
  47. 已弃用,换用下面所写的优先级更高的内联样式表
  48. -------------------------------------
  49. //去除原有鼠标样式定义
  50. document.querySelector('body').style.cursor = '';
  51. //添加自定义鼠标样式
  52. AddStyle(myCursor, cursorId);
  53. */
  54. //内联样式文本
  55. let insideCursorText = myCursor.replace(/body *{ *cursor *: */, '').replace(/ *; *}/, '')
  56. if(site === 'www.baidu.com') {
  57. //百度首页有特殊处理过,需要专门适配
  58. document.getElementById('wrapper').style.cursor = insideCursorText;
  59. document.getElementById('head').style.cursor = insideCursorText;
  60. document.getElementById('s_tab').style.cursor = insideCursorText;
  61. document.getElementById('wrapper_wrapper').style.cursor = insideCursorText;
  62. } else {
  63. //无特殊情况,直接在body上设置.style.cursor内联样式
  64. document.querySelector('body').style.cursor = insideCursorText;
  65. }
  66. };
  67. window.addEventListener('load', applyCursor);
  68. //用户交互部分
  69. let lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
  70. let menu={};
  71. switch (lang){
  72. case "zh-CN":
  73. menu={
  74. specific: "为此网站自定义鼠标样式",
  75. on_off: "",
  76. //------------display------------
  77. ignore: "忽略此网站",
  78. apply: "在此网站上启用自定义鼠标样式",
  79. enterCSS: "请输入新的CSS内容:"
  80. };
  81. break;
  82. case "zh-TW":
  83. menu={
  84. specific: "為此網站自定義滑鼠樣式",
  85. on_off: "",
  86. //------------display------------
  87. ignore: "忽略此網站",
  88. apply: "在此網站上啟用自定義滑鼠樣式",
  89. enterCSS: "請輸入新的CSS內容:"
  90. };
  91. break;
  92. default:
  93. menu={
  94. specific: "Set Another Cursor for this site only",
  95. on_off: "",
  96. //------------display------------
  97. ignore: "Ignore this site",
  98. apply: "Apply Cursor on this site",
  99. enterCSS: "Enter new CSS style: "
  100. };
  101. break;
  102. }
  103. if(ignoreList.indexOf(site) === -1) {
  104. menu.on_off = menu.ignore;
  105. } else {
  106. menu.on_off = menu.apply;
  107. }
  108. //自定义鼠标样式函数
  109. let setCursor = function() {
  110. myCursor = prompt(menu.enterCSS, myCursor);
  111. GM_setValue('default', myCursor);
  112. applyCursor();
  113. };
  114. //是否忽略此网站函数
  115. let on_off = function() {
  116. if(ignoreList.indexOf(site) === -1) {
  117. ignoreList = ignoreList + '|' + site;
  118. GM_setValue('ignoreList', ignoreList);
  119. document.getElementById(cursorId).parentElement.removeChild(document.getElementById(cursorId));
  120. } else {
  121. ignoreList = ignoreList.replace('|' + site, '');
  122. GM_setValue('ignoreList', ignoreList);
  123. applyCursor();
  124. }
  125. };
  126. //为当前网站单独定义鼠标样式
  127. let specific = function() {
  128. myCursor = prompt(menu.enterCSS, myCursor);
  129. GM_setValue(site, myCursor);
  130. applyCursor();
  131. };
  132. GM_registerMenuCommand(menu.specific, specific);
  133. GM_registerMenuCommand(menu.on_off, on_off);
  134. //www.cursor.cc添加安装功能
  135. if(site === 'www.cursor.cc') {
  136. //添加安装按钮(PS: 白嫖别人写好的样式果然就是爽!doge)
  137. let b = document.getElementById('download_copy_form').parentElement.children[2];
  138. let installButton = document.createElement('a');
  139. installButton.className = b.className;
  140. installButton.style.cssText = b.style.cssText;
  141. installButton.style.cursor = 'pointer';
  142. installButton.textContent = '------ Install ------';
  143. installButton.id = 'installer'
  144. b.parentElement.insertBefore(installButton, b.parentElement.children[3]);
  145. installButton.addEventListener('click', function() {
  146. /*let all = document.getElementsByClassName('howto')[1].children[1].textContent;
  147. myCursor = all.replace('<style type=\"text/css\">', '').replace('</style>', '');*/
  148. myCursor = 'body { cursor: ' + document.getElementsByClassName('icon_row')[0].style.cursor + '; }';
  149. console.log('myCursor = "' + myCursor + '"');
  150. GM_setValue('default', myCursor);
  151. applyCursor();
  152. });
  153. }
  154. })();

QingJ © 2025

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