Greasy Fork

Greasy Fork is available in English.

网页鼠标自定义

当前为 2020-07-31 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         网页鼠标自定义
// @namespace    http://tampermonkey.net/MyCursor-MyStyle
// @version      2020.07.31.2
// @description:zh-CN  自定义你的网页鼠标样式,在www.cursor.cc安装新的鼠标样式
// @description:zh-TW  自定義你的網頁滑鼠樣式,在www.cursor.cc安裝新的滑鼠樣式
// @description:en-US  Customize your mouse style, install various different mouse styles on www.cursor.cc
// @author       PY-DNG
// @include      *
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function() {
    'use strict';
    //样式处理部分
    let AddStyle = function(NewStyle, SytleId){
        if(SytleId && document.getElementById(SytleId)){
            document.getElementById(SytleId).remove();
        }
        let NewStyleElement = document.createElement("style");
        NewStyleElement.type = "text/css";
        if(SytleId){NewStyleElement.id = SytleId;};
        NewStyleElement.appendChild(document.createTextNode(NewStyle));
        let HeadElement = document.getElementsByTagName("head")[0];
        HeadElement.appendChild(NewStyleElement);
    };
    //当前域名
    let site = window.location.href.replace(/https?:\/\//, '');
    site = site.substring(0, site.indexOf('/'));
    //默认鼠标样式
    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; }";
    if(GM_getValue('default', '') === '') {GM_setValue('default', defaultCursor); };
    //当前鼠标样式
    let myCursor = GM_getValue(site, GM_getValue('default', ''));
    //忽略的域名
    let ignoreList = GM_getValue('ignoreList', '');
    //样式的Element.id
    let cursorId = 'mycursor';
    //样式应用函数
    let applyCursor = function() {
        //如果忽略此域名就步添加鼠标样式
        if(ignoreList.indexOf(site) !== -1){return; };
        //去除原有鼠标样式定义
        document.querySelector('body').style.cursor = '';
        //添加自定义鼠标样式
        AddStyle(myCursor, cursorId);
    };
    window.addEventListener('load', applyCursor);
    //用户交互部分
    let lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
    let menu={};
    switch (lang){
        case "zh-CN":
            menu={
                specific: "为此网站自定义鼠标样式",
                on_off: "",
                //------------display------------
                ignore: "忽略此网站",
                apply: "在此网站上启用自定义鼠标样式",
                enterCSS: "请输入新的CSS内容:"
            };
            break;
        case "zh-TW":
            menu={
                specific: "為此網站自定義滑鼠樣式",
                on_off: "",
                //------------display------------
                ignore: "忽略此網站",
                apply: "在此網站上啟用自定義滑鼠樣式",
                enterCSS: "請輸入新的CSS內容:"
            };
            break;
        default:
            menu={
                specific: "Set Another Cursor for this site only",
                on_off: "",
                //------------display------------
                ignore: "Ignore this site",
                apply: "Apply Cursor on this site",
                enterCSS: "Enter new CSS style: "
            };
            break;
    }
    if(ignoreList.indexOf(site) === -1) {
        menu.on_off = menu.ignore;
    } else {
        menu.on_off = menu.apply;
    }
    //自定义鼠标样式函数
    let setCursor = function() {
        myCursor = prompt(menu.enterCSS, myCursor);
        GM_setValue('default', myCursor);
        applyCursor();
    };
    //是否忽略此网站函数
    let on_off = function() {
        if(ignoreList.indexOf(site) === -1) {
            ignoreList = ignoreList + '|' + site;
            GM_setValue('ignoreList', ignoreList);
            document.getElementById(cursorId).parentElement.removeChild(document.getElementById(cursorId));
        } else {
            ignoreList = ignoreList.replace('|' + site, '');
            GM_setValue('ignoreList', ignoreList);
            applyCursor();
        }
    };
    //为当前网站单独定义鼠标样式
    let specific = function() {
        myCursor = prompt(menu.enterCSS, myCursor);
        GM_setValue(site, myCursor);
        applyCursor();
    };
    GM_registerMenuCommand(menu.specific, specific);
    GM_registerMenuCommand(menu.on_off, on_off);
    //www.cursor.cc添加安装功能
    if(site === 'www.cursor.cc'){
        let b = document.getElementById('download_copy_form').parentElement.children[2];
        let installButton = document.createElement('a');
        installButton.className = b.className;
        installButton.style.cssText = b.style.cssText;
        installButton.style.cursor = 'pointer';
        installButton.textContent = '------ Install ------';
        installButton.id = 'installer'
        b.parentElement.insertBefore(installButton, b.parentElement.children[3]);
        installButton.addEventListener('click', function() {
            /*let all = document.getElementsByClassName('howto')[1].children[1].textContent;
            myCursor = all.replace('<style type=\"text/css\">', '').replace('</style>', '');*/
            myCursor = 'body { cursor: ' + document.getElementsByClassName('icon_row')[0].style.cursor + '; }';
            console.log('myCursor = "' + myCursor + '"');
            GM_setValue('default', myCursor);
            applyCursor();
        });
    }
})();