Greasy Fork

链接选中

在链接上禁用拖拽行为,左键滑动时选择文本而不是打开链接。

目前为 2025-04-08 提交的版本。查看 最新版本

// ==UserScript==
// @name         链接选中
// @version      0.2
// @namespace    https://greasyfork.org/users/1171320
// @description  在链接上禁用拖拽行为,左键滑动时选择文本而不是打开链接。
// @author       yzcjd
// @author2     ChatGPT4 辅助
// @match        *://*/*
// @run-at       document-start
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    let isMouseDown = false;

    // 阻止链接拖拽
    document.addEventListener('mousedown', function(event) {
        if (event.target.tagName === 'A') {
            isMouseDown = true;
            event.preventDefault(); // 禁用链接的拖拽行为
        }
    });

    // 监听鼠标移动事件,选择链接文本
    document.addEventListener('mousemove', function(event) {
        if (isMouseDown && event.target.tagName === 'A') {
            const link = event.target;

            // 选中链接文本
            const selection = window.getSelection();
            const range = document.createRange();
            range.selectNodeContents(link);
            selection.removeAllRanges();
            selection.addRange(range);
        }
    });

    // 鼠标抬起时,恢复点击行为
    document.addEventListener('mouseup', function(event) {
        if (event.target.tagName === 'A' && isMouseDown) {
            // 重置状态
            isMouseDown = false;
        }
    });
})();