篡改猴脚本:选中文本使用 Google 搜索按钮

12次阅读

共计 1510 个字符,预计需要花费 4 分钟才能阅读完成。

使用篡改猴脚本给网页上选中文本添加一个使用 Google 的搜索按钮

// ==UserScript==
// @name         搜索选中 |Search Selection
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  给选中文本添加一个使用 Google 的搜索按钮 |Add a search button over selected text to search on Google
// @author       INFUN 指挥智谱清言开发
// @match        *://*/*
// ==/UserScript==

(function() {
    'use strict';

    // 创建搜索按钮
    const searchButton = document.createElement('button');
    searchButton.style.cssText = `
        position: fixed;
        background-color: blue;
        color: white;
        padding: 3px 6px;
        border-radius: 15px;
        cursor: pointer;
        font-size: 12px;
        z-index: 9999;
        display: none;
    `;
    searchButton.textContent = '去搜索';
    document.body.appendChild(searchButton);

    // 处理选中文本
    document.addEventListener('mouseup', function() {const selection = window.getSelection();
        if (selection.rangeCount> 0 && selection.toString().trim() !== '') {const range = selection.getRangeAt(0);
            const rect = range.getBoundingClientRect();
            searchButton.style.top = `${rect.top - 30}px`;
            searchButton.style.left = `${rect.left + (rect.width / 2) - 35}px`;
            searchButton.style.display = 'block'; // 显示按钮
            searchButton.onclick = function() {const query = encodeURIComponent(selection.toString());
                window.open(`https://www.google.com/search?q=${query}&ie=utf-8&oe=utf-8&cr=countrySG`, '_blank');
                searchButton.style.display = 'none'; // 隐藏按钮
            };
        } else {
            // 如果没有选中文本或选中的是空白,则隐藏按钮
            searchButton.style.display = 'none';
        }
    });

    // 点击非按钮区域或按下 Esc 键时隐藏按钮
    document.addEventListener('mousedown', function(event) {if (event.target !== searchButton) {searchButton.style.display = 'none';}
    });

    document.addEventListener('keydown', function(event) {if (event.key === 'Escape') {searchButton.style.display = 'none';}
    });
})();
正文完
 0