需求场景
我有时候搜东西,百度结果不靠谱,要换 Bing;再不行换 360;还不行去搜狗。最后发现想要的信息在搜狗里。来回切换搜索引擎,粘贴关键词,重复四遍 —— 时间全浪费在重复劳动上。
一个简单的 JavaScript 书签(bookmarklet)就能解决:选中关键词,点这个书签,自动在四个搜索引擎里同时开标签页搜索。一次点击,4 个结果,横向对比。

书签代码
这段 JavaScript 读剪贴板的内容(或者你选中的文字),分别用百度、必应、360、搜狗打开新标签页搜:
javascript:
if (navigator.clipboard) {
navigator.clipboard.readText().then(function(text) {
const encodedText = encodeURIComponent(text);
window.open(`https://www.baidu.com/s?wd=${encodedText}`, '_blank');
window.open(`https://www.bing.com/search?q=${encodedText}`, '_blank');
window.open(`https://www.so.com/s?q=${encodedText}`, '_blank');
window.open(`https://www.sogou.com/web?query=${encodedText}`, '_blank');
}).catch(function(err) {
console.error('无法读取剪贴板内容: ', err);
});
} else {
console.error('浏览器不支持剪贴板API');
}
添加到收藏夹
- 浏览器随便收藏一个网页,得到一个新书签
- 右键这个书签 → 编辑
- 名称:改成"4搜索"之类
- URL:整段替换成上面那个
javascript:...代码 - 保存
用法:复制要搜的关键词 → 点这个书签 → 浏览器同时打开 4 个搜索标签。
原理拆解
这种 javascript: 开头的 URL 叫 bookmarklet,本质是浏览器允许把 JS 代码作为"URL"执行的特殊语法。点击书签时,当前页面的 JS 上下文里执行这段代码,可以访问 window、document、navigator 等。
代码里关键的几点:
navigator.clipboard.readText()—— 读剪贴板,需要用户授权(第一次点击会弹权限询问)encodeURIComponent—— URL 转义,中文 / 空格自动转%E4...window.open(url, '_blank')—— 打开新标签
定制扩展
1. 加更多搜索引擎:
window.open(`https://www.google.com/search?q=${encodedText}`, '_blank');
window.open(`https://duckduckgo.com/?q=${encodedText}`, '_blank');
window.open(`https://www.zhihu.com/search?q=${encodedText}`, '_blank');
window.open(`https://github.com/search?q=${encodedText}`, '_blank');
window.open(`https://stackoverflow.com/search?q=${encodedText}`, '_blank');
2. 用选中的文字代替剪贴板(更自然):
javascript:(function(){
var text = window.getSelection().toString().trim();
if (!text) text = prompt('请输入搜索内容:');
if (!text) return;
var enc = encodeURIComponent(text);
[
'https://www.baidu.com/s?wd=' + enc,
'https://www.bing.com/search?q=' + enc,
'https://www.so.com/s?q=' + enc,
'https://www.sogou.com/web?query=' + enc
].forEach(function(url) {
window.open(url, '_blank');
});
})();
这版优先用选中文字,没选中就弹个 prompt 让你输入。不依赖剪贴板权限。
3. 加快捷键:配合浏览器扩展(Vimium、Surfingkeys),可以给这个书签绑一个快捷键(比如 Alt+S),不用每次都点鼠标。
类似的实用 bookmarklet
// 一键加 reading mode(简洁阅读)
javascript:(function(){
var s=document.body.style;
s.maxWidth='720px';
s.margin='0 auto';
s.fontSize='18px';
s.lineHeight='1.7';
s.padding='20px';
})();
// 当前页转纯文本到剪贴板
javascript:(function(){
var content = document.body.innerText;
navigator.clipboard.writeText(content);
alert('已复制纯文本到剪贴板');
})();
// 翻译当前页 - 用 Google Translate
javascript:(function(){
var url = 'https://translate.google.com/translate?sl=auto&tl=zh-CN&u=' + encodeURIComponent(location.href);
window.open(url, '_blank');
})();
都是一行代码搞定的小工具,适合丢进收藏夹常用。
浏览器兼容性
bookmarklet 所有主流浏览器都支持。clipboard API 在 Safari 上要 TLS,在 HTTP 之上加一层 TLS 加密,防止中间人窃听和篡改。">HTTPS,其他浏览器都行。window.open 有时会被弹窗拦截器拦掉,首次使用提示"允许此源弹窗"即可。
—— 别看了 · 2026