// ==UserScript== // @name 安卓Chrome桌面模式深度优化 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 1. 强制浏览器布局与Windows桌面版一致;2. 禁用点击输入框时的自动缩放。 // @author Gemini // @match *://*/* // @grant none // @run-at document-start // @downloadURL none // ==/UserScript== (function() { 'use strict'; /** * 功能 1: 模拟 Windows User Agent * 许多网站通过 navigator.userAgent 判断系统。 * 我们将其修改为标准的 Windows Chrome 字符。 */ const WINDOWS_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"; Object.defineProperty(navigator, 'userAgent', { get: function() { return WINDOWS_UA; } }); Object.defineProperty(navigator, 'platform', { get: function() { return "Win32"; } }); /** * 功能 2: 禁用输入框自动放大 & 强制桌面布局 * 自动放大的原因是 Chrome 检测到移动端 viewport 且字体小于 16px。 * 通过覆盖 viewport 设置,我们可以欺骗浏览器以固定比例渲染。 */ function fixViewport() { let meta = document.querySelector('meta[name="viewport"]'); if (!meta) { meta = document.createElement('meta'); meta.name = "viewport"; document.head.appendChild(meta); } // user-scalable=no 禁用手动缩放(可选),但主要是为了防止点击聚焦放大 // 设置一个固定的桌面宽度(如1280px)有助于让布局更接近PC meta.content = "width=1280, initial-scale=1, maximum-scale=1, user-scalable=yes"; } // 在页面加载初期执行 fixViewport(); // 针对动态生成的页面,定期检查一次 viewport window.addEventListener('DOMContentLoaded', fixViewport); /** * 额外补充:针对点击输入框自动放大的 CSS 补丁 * 移动端 Chrome 在 input 字体小于 16px 时会触发放大。 * 我们强制将其改为 16px 但通过 scale 缩小视觉尺寸(如果需要), * 或者直接通过 touch-action 属性限制。 */ const style = document.createElement('style'); style.innerHTML = ` /* 尝试通过 CSS 减少缩放倾向 */ input, textarea, select { font-size: 16px !important; /* 核心:安卓防止放大的阈值是16px */ } `; document.head.appendChild(style); })();