DeepSeek 宽屏模式

将 DeepSeek 问答界面宽度改为`85%`

// ==UserScript==
// @name         DeepSeek 宽屏模式
// @namespace    http://tampermonkey.net/
// @version      2025-05-07
// @description  将 DeepSeek 问答界面宽度改为`85%`
// @author       Enlin
// @match        *://*.chat.deepseek.com/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    /** 更改宽度逻辑 */
    function changeWidth(){
        let changeWidthInterval = setInterval(() => {
            const contenxtElement = document.querySelector('#root .dad65929');
            console.log(`contenxtElement: #root .dad65929: `,contenxtElement);

            if (contenxtElement) {
                clearInterval(changeWidthInterval);
                console.log(`已修改宽度`);
                contenxtElement.style.maxWidth = '85%';
                contenxtElement.style.width = '85%';
            }
        }, 1000)
    }
    changeWidth()

    /** 监听路由变化逻辑 */
    let lastSegment = null;
    // 获取路径最后一段
    function getLastPathSegment() {
        const path = window.location.pathname;
        const segments = path.split('/').filter(s => s); // 过滤空字符串
        return segments.length > 0 ? segments[segments.length - 1] : '';
    }

    // 监听路由变化
    function observePathChange(callback) {
        const _pushState = history.pushState;
        const _replaceState = history.replaceState;

        // 重写History API方法
        history.pushState = function(...args) {
            _pushState.apply(history, args);
            handlePathChange(callback);
        };

        history.replaceState = function(...args) {
            _replaceState.apply(history, args);
            handlePathChange(callback);
        };

        // 监听浏览器前进/后退
        window.addEventListener('popstate', () => handlePathChange(callback));
    }

    // 处理路径变化检测
    function handlePathChange(callback) {
        const currentSegment = getLastPathSegment();
        if (currentSegment !== lastSegment) {
            lastSegment = currentSegment;
            callback();
        }
    }

    // 初始化监听
    observePathChange(() => {
        console.log(`路由已改变`)
        changeWidth()
    })

})();