禁止网页双击缩放

禁用网页双击缩放功能

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         禁止网页双击缩放
// @namespace    https://viayoo.com/
// @version      1.3
// @description  禁用网页双击缩放功能
// @author       DeepSeek
// @license      MIT
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';
    
    let scriptEnabled = true;
    let doubleClickListener = null;
    let touchEndListener = null;
    let lastTouchEnd = 0;
    let disableCommand = null;
    let enableCommand = null;
    
    // 初始化脚本功能
    function initScript() {
        // 移除现有监听器
        if (doubleClickListener) {
            document.removeEventListener('dblclick', doubleClickListener, { capture: true });
        }
        if (touchEndListener) {
            document.removeEventListener('touchend', touchEndListener, { capture: true });
        }
        
        if (scriptEnabled) {
            // 阻止双击缩放行为
            doubleClickListener = function(event) {
                event.preventDefault();
            };
            
            // 移动端双击处理
            touchEndListener = function(event) {
                const now = Date.now();
                if (now - lastTouchEnd < 300) {
                    event.preventDefault();
                }
                lastTouchEnd = now;
            };
            
            document.addEventListener('dblclick', doubleClickListener, { capture: true, passive: false });
            document.addEventListener('touchend', touchEndListener, { capture: true, passive: false });
        }
    }
    
    // 创建油猴脚本菜单
    function createScriptMenu() {
        // 注册菜单命令
        disableCommand = GM_registerMenuCommand('禁用双击缩放阻止', function() {
            scriptEnabled = false;
            initScript();
            updateMenuCommands();
        });
        
        enableCommand = GM_registerMenuCommand('启用双击缩放阻止', function() {
            scriptEnabled = true;
            initScript();
            updateMenuCommands();
        });
        
        // 初始更新菜单状态
        updateMenuCommands();
    }
    
    // 更新菜单命令状态
    function updateMenuCommands() {
        if (disableCommand) GM_unregisterMenuCommand(disableCommand);
        if (enableCommand) GM_unregisterMenuCommand(enableCommand);
        
        if (scriptEnabled) {
            disableCommand = GM_registerMenuCommand('禁用双击缩放阻止', function() {
                scriptEnabled = false;
                initScript();
                updateMenuCommands();
            });
        } else {
            enableCommand = GM_registerMenuCommand('启用双击缩放阻止', function() {
                scriptEnabled = true;
                initScript();
                updateMenuCommands();
            });
        }
    }
    
    // 初始化
    function init() {
        initScript();
        createScriptMenu();
    }
    
    // 启动脚本
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
    
})();