使用篡改猴脚本给网页上选中文本添加一个使用 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';
}
});
})();
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.