保存测试

测试

目前为 2024-06-28 提交的版本。查看 最新版本

// ==UserScript==
// @name         保存测试
// @namespace    http://tampermonkey.net/
// @version      8.2
// @license MIT
// @description  测试
// @author       从前跟你一样
// @grant        unsafeWindow
// @match        *://*/*
// @require      https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js
// @connect      vagrantup.com
// @grant        unsafeWindow
// @grant         GM_xmlhttpRequest
// @connect       192.168.10.2
// @connect       novelai.net
// @match        *://*/*
// @description  Save user settings
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==
// ==/UserScript==

(function() {
    'use strict';
    let isDragging = null;

    const ICON_URL = 'https://internal-api-drive-stream-sg.larksuite.com/space/api/box/stream/download/v2/cover/QHspbh93roP3BtxYKSelqvZvgGf/?fallback_source=1&height=1280&mount_node_token=A76Yd1rjgo4Bavxu183lE7j7gIh&mount_point=docx_image&policy=equal&width=1280';
   // let iconData = GM_getValue('iconData', null);
     let iconData = "data:image/gif;base64,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"    // 下载并保存图标
    function downloadAndSaveIcon() {
        GM_xmlhttpRequest({
            method: 'GET',
            url: ICON_URL,
            responseType: 'blob',
            onload: function(response) {
                let reader = new FileReader();
                reader.onloadend = function() {
                    iconData = reader.result;
                    GM_setValue('iconData', iconData);
                    createSettingsIcon(iconData);
                };
                reader.readAsDataURL(response.response);
            }
        });
    }

   function createSettingsIcon(iconSrc) {
    const icon = document.createElement('img');
    icon.src = iconSrc;
    icon.style.position = 'fixed';
    icon.style.top = '50%';
    icon.style.right = '0';
    icon.style.transform = 'translateY(-50%)';
    icon.style.width = '30px';
    icon.style.height = '30px';
    icon.style.cursor = 'pointer';
    icon.style.zIndex = '9999';
    icon.style.transition = 'right 0.3s';

    let hideTimeout;


    function snapToRight() {
        icon.style.right = '0';
        icon.style.left = 'auto';
        clearTimeout(hideTimeout);
        hideTimeout = setTimeout(() => {
            icon.style.right = '-20px';
        }, 2000);
    }

    function showIcon() {
        icon.style.right = '0';
        clearTimeout(hideTimeout);
    }

    function hideIcon() {
        hideTimeout = setTimeout(() => {
            icon.style.right = '-20px';
        }, 1000);
    }

    icon.addEventListener('mouseenter', showIcon);
    icon.addEventListener('mouseleave', hideIcon);
    icon.addEventListener('mousedown', (e) => {

         isDragging = e.clientX;

    })
    // 修改点击事件处理
    icon.addEventListener('mouseup', (e) => {
        if (e.clientX==isDragging) {
            openSettingsPanel();
        }
    }) ;

    makeDraggable(icon, () => {
        snapToRight();
    });

    function makeDraggable(element, callback) {
        let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
        element.onmousedown = dragMouseDown;

        function dragMouseDown(e) {
            e = e || window.event;
            e.preventDefault();
            pos3 = e.clientX;
            pos4 = e.clientY;
            document.onmouseup = closeDragElement;
            document.onmousemove = elementDrag;
        }

        function elementDrag(e) {
            e = e || window.event;
            e.preventDefault();
            pos1 = pos3 - e.clientX;
            pos2 = pos4 - e.clientY;
            pos3 = e.clientX;
            pos4 = e.clientY;
            element.style.top = (element.offsetTop - pos2) + "px";
            element.style.left = (element.offsetLeft - pos1) + "px";
            element.style.right = 'auto';
        }

        function closeDragElement() {

            document.onmouseup = null;
            document.onmousemove = null;
            if (callback) callback();
        }
    }

    document.body.appendChild(icon);
    hideIcon(); // 初始状态为隐藏
}

    // 创建设置面板
    function createSettingsPanel() {
        const panel = document.createElement('div');
        panel.style.position = 'fixed';
        panel.style.top = '50%';
        panel.style.left = '50%';
        panel.style.transform = 'translate(-50%, -50%)';
        panel.style.backgroundColor = 'white';
        panel.style.padding = '20px';
        panel.style.border = '1px solid black';
        panel.style.zIndex = '10000';
        panel.style.display = 'none';

        const input = document.createElement('input');
        input.type = 'text';
        input.value = GM_getValue('userSetting', '');

        const saveButton = document.createElement('button');
        saveButton.textContent = '保存设置';
        saveButton.onclick = saveSetting;

        panel.appendChild(input);
        panel.appendChild(saveButton);

        document.body.appendChild(panel);
        return panel;
    }

    // 打开设置面板
    function openSettingsPanel() {
        settingsPanel.style.display = 'block';
    }

    // 保存设置
    function saveSetting() {
        const input = settingsPanel.querySelector('input');
        GM_setValue('userSetting', input.value);
        settingsPanel.style.display = 'none';
    }

    // 初始化
    if (iconData) {
        createSettingsIcon(iconData);
    } else {
        downloadAndSaveIcon();
    }

    const settingsPanel = createSettingsPanel();
    // Your code here...
})();

QingJ © 2025

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