MjjBox网站小黄鸡表情排列首位+放大油猴插件

搞到一个插件,MjjBox网站小黄鸡表情排列首位+放大油猴插件,效果如图,有兴趣的可以试试。

插件代码:

// ==UserScript==
// @name         mjjbox 小黄鸡表情置顶
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  将小黄鸡表情调整到表情选择器的第一个位置
// @author       blogs.zuichu.de
// @match        https://mjjbox.com/*
// @icon         https://mjjbox.com/favicon.ico
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // 添加自定义样式,将小黄鸡表情放大
    GM_addStyle(`
        .emoji-picker__section[data-section="小黄鸡"] .emoji {
            width: 52px !important;
            height: 52px !important;
        }
    `);

    // 调整小黄鸡表情位置的函数
    function moveChickenEmojiToFirst() {
        console.log('[调试] 尝试查找表情选择器...');

        // 1. 调整导航按钮位置
        const emojiNav = document.querySelector('.emoji-picker__sections-nav');
        if (!emojiNav) {
            console.log('[调试] 未找到 .emoji-picker__sections-nav');
            return false;
        }

        console.log('[调试] 找到表情选择器导航:', emojiNav);
        console.log('[调试] 表情选择器内的所有按钮数量:', emojiNav.querySelectorAll('button').length);

        const chickenBtn = emojiNav.querySelector('[data-section="小黄鸡"]');
        if (!chickenBtn) {
            console.log('[调试] 未找到小黄鸡按钮');
            // 输出所有 data-section 属性值
            const allBtns = emojiNav.querySelectorAll('[data-section]');
            console.log('[调试] 找到的所有 data-section:', Array.from(allBtns).map(btn => btn.dataset.section));
            return false;
        }

        console.log('[调试] 找到小黄鸡按钮:', chickenBtn);

        // 将小黄鸡按钮移动到第一个位置
        emojiNav.insertBefore(chickenBtn, emojiNav.firstChild);
        console.log('✅ 小黄鸡按钮已调整到第一位');

        // 2. 调整表情盘位置
        const emojiSections = document.querySelector('.emoji-picker__sections');
        if (!emojiSections) {
            console.log('[调试] 未找到 .emoji-picker__sections');
            return true; // 按钮已调整,返回 true
        }

        console.log('[调试] 找到表情盘容器:', emojiSections);

        const chickenSection = emojiSections.querySelector('[data-section="小黄鸡"]');
        if (!chickenSection) {
            console.log('[调试] 未找到小黄鸡表情盘');
            // 输出所有表情盘的 data-section 属性值
            const allSections = emojiSections.querySelectorAll('[data-section]');
            console.log('[调试] 找到的所有表情盘 data-section:', Array.from(allSections).map(sec => sec.dataset.section));
            return true; // 按钮已调整,返回 true
        }

        console.log('[调试] 找到小黄鸡表情盘:', chickenSection);

        // 将小黄鸡表情盘移动到第一个位置
        emojiSections.insertBefore(chickenSection, emojiSections.firstChild);
        console.log('✅ 小黄鸡表情盘已调整到第一位');

        return true;
    }

    // 监听插入表情按钮的点击事件
    function observeEmojiButton() {
        console.log('[调试] 开始监听插入表情按钮点击事件');

        document.addEventListener('click', function(e) {
            console.log('[调试] 检测到点击事件,目标:', e.target);

            const target = e.target.closest('.insert-composer-emoji');
            if (target) {
                console.log('✅ 检测到插入表情按钮被点击:', target);

                // 先尝试立即调整(可能表情选择器已经存在)
                setTimeout(() => {
                    moveChickenEmojiToFirst();
                }, 100);

                // 使用 MutationObserver 监听表情选择器的出现
                const observer = new MutationObserver(function(mutations) {
                    console.log('[调试] 检测到 DOM 变化,mutations 数量:', mutations.length);

                    for (let mutation of mutations) {
                        if (mutation.addedNodes.length) {
                            console.log('[调试] 有新节点添加,尝试调整表情位置');
                            // 尝试调整表情位置
                            if (moveChickenEmojiToFirst()) {
                                observer.disconnect();
                                console.log('[调试] Observer 已停止监听');
                                break;
                            }
                        }
                    }
                });

                // 开始监听 body 的变化
                observer.observe(document.body, {
                    childList: true,
                    subtree: true
                });

                console.log('[调试] MutationObserver 已启动');

                // 设置超时,5秒后停止监听
                setTimeout(() => {
                    observer.disconnect();
                    console.log('[调试] Observer 超时,已停止监听');
                }, 5000);
            }
        }, true); // 使用捕获阶段
    }

    // 页面加载完成后开始监听
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', observeEmojiButton);
    } else {
        observeEmojiButton();
    }

    console.log('========================================');
    console.log('mjjbox 小黄鸡表情置顶插件已加载');
    console.log('版本: 1.0 (调试版)');
    console.log('========================================');
})();

插件来源MjjBox网站小黄鸡表情排列首位+放大油猴插件 - 最初的

11 个赞

试试吧,在辉哥修理之前可以用用

:hj013: 感谢

1 个赞

感谢家人。

1 个赞

好帖 赞了

1 个赞

可以试试看 :hj027:

试试我的牛逼mjj

1 个赞

油猴真是万能的

2 个赞

已赞请回复

1 个赞

这个好:star_struck:

2 个赞

不错,这个方便多了