网页鼠标自定义

自定义你的网页鼠标样式,在www.cursor.cc安装新的鼠标样式

目前为 2020-08-06 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name 网页鼠标自定义
  3. // @namespace http://tampermonkey.net/MyCursor-MyStyle
  4. // @version 2020.08.06.1
  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('head').style.cursor = insideCursorText;
  59. } else {
  60. //无特殊情况,直接在body上设置.style.cursor内联样式
  61. document.querySelector('body').style.cursor = insideCursorText;
  62. }
  63. };
  64. window.addEventListener('load', applyCursor);
  65. //用户交互部分
  66. let lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
  67. let menu={};
  68. switch (lang){
  69. case "zh-CN":
  70. menu={
  71. specific: "为此网站自定义鼠标样式",
  72. on_off: "",
  73. //------------display------------
  74. ignore: "忽略此网站",
  75. apply: "在此网站上启用自定义鼠标样式",
  76. enterCSS: "请输入新的CSS内容:"
  77. };
  78. break;
  79. case "zh-TW":
  80. menu={
  81. specific: "為此網站自定義滑鼠樣式",
  82. on_off: "",
  83. //------------display------------
  84. ignore: "忽略此網站",
  85. apply: "在此網站上啟用自定義滑鼠樣式",
  86. enterCSS: "請輸入新的CSS內容:"
  87. };
  88. break;
  89. default:
  90. menu={
  91. specific: "Set Another Cursor for this site only",
  92. on_off: "",
  93. //------------display------------
  94. ignore: "Ignore this site",
  95. apply: "Apply Cursor on this site",
  96. enterCSS: "Enter new CSS style: "
  97. };
  98. break;
  99. }
  100. if(ignoreList.indexOf(site) === -1) {
  101. menu.on_off = menu.ignore;
  102. } else {
  103. menu.on_off = menu.apply;
  104. }
  105. //自定义鼠标样式函数
  106. let setCursor = function() {
  107. myCursor = prompt(menu.enterCSS, myCursor);
  108. GM_setValue('default', myCursor);
  109. applyCursor();
  110. };
  111. //是否忽略此网站函数
  112. let on_off = function() {
  113. if(ignoreList.indexOf(site) === -1) {
  114. ignoreList = ignoreList + '|' + site;
  115. GM_setValue('ignoreList', ignoreList);
  116. document.getElementById(cursorId).parentElement.removeChild(document.getElementById(cursorId));
  117. } else {
  118. ignoreList = ignoreList.replace('|' + site, '');
  119. GM_setValue('ignoreList', ignoreList);
  120. applyCursor();
  121. }
  122. };
  123. //为当前网站单独定义鼠标样式
  124. let specific = function() {
  125. myCursor = prompt(menu.enterCSS, myCursor);
  126. GM_setValue(site, myCursor);
  127. applyCursor();
  128. };
  129. GM_registerMenuCommand(menu.specific, specific);
  130. GM_registerMenuCommand(menu.on_off, on_off);
  131. //www.cursor.cc添加安装功能
  132. if(site === 'www.cursor.cc') {
  133. let b = document.getElementById('download_copy_form').parentElement.children[2];
  134. let installButton = document.createElement('a');
  135. installButton.className = b.className;
  136. installButton.style.cssText = b.style.cssText;
  137. installButton.style.cursor = 'pointer';
  138. installButton.textContent = '------ Install ------';
  139. installButton.id = 'installer'
  140. b.parentElement.insertBefore(installButton, b.parentElement.children[3]);
  141. installButton.addEventListener('click', function() {
  142. /*let all = document.getElementsByClassName('howto')[1].children[1].textContent;
  143. myCursor = all.replace('<style type=\"text/css\">', '').replace('</style>', '');*/
  144. myCursor = 'body { cursor: ' + document.getElementsByClassName('icon_row')[0].style.cursor + '; }';
  145. console.log('myCursor = "' + myCursor + '"');
  146. GM_setValue('default', myCursor);
  147. applyCursor();
  148. });
  149. }
  150. })();

QingJ © 2025

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