生财有术官网页面优化

优化生财有术官网页面显示

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

// ==UserScript==
// @name         生财有术官网页面优化
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  优化生财有术官网页面显示
// @author       骄阳
// @match        https://scys.com/home*
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // 定义修改标签属性的函数
    function modifyStyles() {
        // 修改class="container"的max-width属性为1000px
        /*var containers = document.querySelectorAll('.container');
        containers.forEach(function(container) {
            container.style.maxWidth = '1000px';
        });

        // 修改class="left"的max-width属性为1000px
        var lefts = document.querySelectorAll('.left');
        lefts.forEach(function(left) {
            left.style.maxWidth = '1000px';
        });

        // 修改class="streamline"的max-width属性为1000px
        var streamlines = document.querySelectorAll('.streamline');
        streamlines.forEach(function(streamline) {
            console.log("streamline.style.maxWidth:"+streamline.style.maxWidth)
            streamline.style.maxWidth = '1000px';
        });*/

        // 修改class="contentArticle"的max-width属性为800px
        var contentArticles = document.querySelectorAll('.contentArticle');
        contentArticles.forEach(function(contentArticle) {
            contentArticle.style.maxWidth = '800px';
        });

        /*// 修改class="first-modal"的max-width属性为300px
        var firstmodal = document.querySelector('.first-modal');
        firstmodal.style.maxWidth = '276px';

        // 修改class="second-modal"的width属性为300px
        var secondmodal = document.querySelector('.second-modal');
        secondmodal.style.width = '296px';

        // 修改class="third-modal"的width属性为300px
        var thirdmodal = document.querySelector('.third-modal');
        thirdmodal.style.width = '308px';

        // 修改class="fouth-modal"的width属性为300px
        var fouthmodal = document.querySelector('.fouth-modal');
        fouthmodal.style.width = '190px';

        // 修改class="card"的width属性为300px
        var cards = document.querySelectorAll('div.third-hot>div.card');
        cards.forEach(function(card) {
            card.style.width = '80px';
        });*/

    }

    // 使用MutationObserver监听class属性的变化
    function observeClassChanges() {
        var observer = new MutationObserver(function(mutations) {
            console.log("233")
            mutations.forEach(function(mutation) {
                if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
                    // 确保mutation.target与预期的选择器匹配
                    console.log("23311")
                    var isTargetItem = mutation.target.matches && mutation.target.matches('div.bottom-pagination > div > div.item');
                    console.log("233234")
                    console.log(isTargetItem)
                    if (isTargetItem) {

                        // 使用setTimeout增加延迟执行
                        setTimeout(function() {
                            console.log("modifyStyles");
                            modifyStyles();
                            addDoubleClickListener();
                            addHoverListener();
                            // 此处可以添加更多的样式修改操作
                        }, 1000); // 数字0表示延迟到当前执行栈清空之后执行
                        console.log("modifyStyles end")
                    }
                }
            });
        });

        // 配置MutationObserver观察的节点和属性
        var config = {
            attributes: true, // 观察属性变动
            childList: false, // 不观察子节点的增减
            subtree: true      // 观察整个文档树
        };

        // 开始观察整个文档树中的所有节点
        observer.observe(document, config);
    }

    // 为特定的元素添加双击事件监听器
    function addDoubleClickListener() {
        // 获取所有满足条件的span元素
        var dates = document.querySelectorAll('div.left > div.content > div.streamline > div > div.date > span');

        // 为每个span元素添加双击事件监听器
        dates.forEach(function(span) {
            span.addEventListener('dblclick', function() {
                // 获取span的父级元素中的contentArticle的div
                var contentArticleDiv = span.closest('div.streamline').querySelector('div.contentArticle > div');

                // 检查是否存在对应的contentArticle的div
                if (contentArticleDiv) {
                    // 复制contentArticle的div内容
                    var contentToCopy = contentArticleDiv.innerText || contentArticleDiv.textContent;

                    // 使用浏览器的execCommand方法将内容复制到剪贴板
                    if (document.queryCommandSupported && document.queryCommandSupported('copy')) {
                        var textarea = document.createElement('textarea');
                        textarea.textContent = contentToCopy.replaceAll("​","").replaceAll("​","").trim();
                        textarea.style.position = 'fixed';  // Prevent scrolling
                        document.body.appendChild(textarea);
                        textarea.select();

                        try {
                            var successful = document.execCommand('copy');
                            var msg = successful ? 'successful' : 'unsuccessful';
                            console.log('Copying text command was ' + msg);
                        } catch (err) {
                            console.error('Unable to copy: ', err);
                        }

                        document.body.removeChild(textarea);
                    }
                }
            });
        });
    }

    // 为特定的元素添加鼠标悬停事件
    function addHoverListener() {
        // 获取所有满足条件的span元素
        var dates = document.querySelectorAll('div.left > div.content > div.streamline > div > div.date > span');

        // 为每个span元素设置CSS伪类:hover样式
        dates.forEach(function(span) {
            span.addEventListener('mouseenter', function() {
                span.style.cursor = 'pointer'; // 设置鼠标悬停时鼠标样式为小手
            });
            span.addEventListener('mouseleave', function() {
                span.style.cursor = 'auto'; // 鼠标离开时恢复默认鼠标样式
            });

            // 添加title提示
            span.title = '双击复制标题';
        });
    }

    // 创建悬浮按钮的函数
    function createFloatingButtons() {
        // 创建“优化页面”按钮
        var optimizeButton = document.createElement('button');
        optimizeButton.innerText = '优化页面';
        optimizeButton.style.cssText = 'position: fixed; top: 50%; left: 20px; z-index: 1000;background-color:#3d76fb;height:40px;font-size:16px;';
        optimizeButton.addEventListener('click', modifyStyles);

        // 创建“隐藏按钮”按钮
        var hideButton = document.createElement('button');
        hideButton.innerText = '隐藏按钮';
        hideButton.style.cssText = 'position: fixed; top: 55%; left: 20px; z-index: 1000;;background-color:#3d76fb;height:40px;font-size:16px;';
        hideButton.addEventListener('click', function() {
            optimizeButton.remove();
            hideButton.remove();
        });

        // 将按钮添加到页面中
        document.body.appendChild(optimizeButton);
        document.body.appendChild(hideButton);
    }

    // 页面加载完成后执行
    window.addEventListener('load', function() {
        //createFloatingButtons();
        setTimeout(function() {
            console.log("modifyStyles");
            modifyStyles();
            addDoubleClickListener();
            addHoverListener();
            // 此处可以添加更多的样式修改操作
        }, 1000); // 数字0表示延迟到当前执行栈清空之后执行
        observeClassChanges(); // 添加点击事件监听器
    });
})();

QingJ © 2025

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