Greasy Fork 支持简体中文。

X-Mol高级搜索界面按钮调整

原网页设计中,搜索按钮的位置处于页面最下端。在实际使用过程中,这一布局使得用户每次想要进行搜索操作时,都需要将视线和操作焦点转移至页面底部,操作流程较为繁琐,使用体验不佳。

// ==UserScript==
// @name         X-Mol高级搜索界面按钮调整
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  原网页设计中,搜索按钮的位置处于页面最下端。在实际使用过程中,这一布局使得用户每次想要进行搜索操作时,都需要将视线和操作焦点转移至页面底部,操作流程较为繁琐,使用体验不佳。
// @author       Maifei
// @match        https://www.x-mol.com/paper/search
// @icon         https://www.google.com/s2/favicons?sz=64&domain=x-mol.com
// @grant        GM_setValue
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // 创建样式调整函数
    function adjustButtonPosition() {
        // 找到目标按钮的父容器
        const btnContainer = document.querySelector('.magazine-senior-search-item-btn-first');

        if (btnContainer) {
            // 移除原有容器
            btnContainer.remove();

            // 创建新的定位容器
            const newContainer = document.createElement('div');
            newContainer.style.cssText = `
                position: fixed;
                top: 240px;
                left: 20%;
                transform: translateX(-50%);
                z-index: 9999;
            `;

            // 将按钮插入新容器
            newContainer.appendChild(btnContainer);

            // 将新容器添加到页面顶部
            document.body.prepend(newContainer);

            // 调整按钮样式
            const searchBtn = btnContainer.querySelector('.btn-blue-new');
            if (searchBtn) {
                searchBtn.style.cssText = `
                    width: 200px;
                    height: 50px;
                    line-height: 50px;
                    margin: 0;
                    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
                `;
            }

            // 新增回车键监听(根据实际页面选择输入框选择器)
            const searchInput = document.querySelector('input[type="text"]'); // 可能需要调整选择器
            if (searchInput) {
                searchInput.addEventListener('keydown', (e) => {
                    if (e.key === 'Enter' || e.keyCode === 13) {
                        xmol.search(); // 调用页面原有搜索方法
                    }
                });
            }
        }
    }

    // 使用MutationObserver确保在DOM加载后执行
    const observer = new MutationObserver(function(mutations, me) {
        if (document.querySelector('.magazine-senior-search-item-btn-first')) {
            adjustButtonPosition();
            me.disconnect(); // 找到元素后停止观察
        }
    });

    // 开始观察整个文档
    observer.observe(document, {
        childList: true,
        subtree: true
    });
})();