英语 | 中文
轻松使用/切换任何一个或多个(不间断)搜索引擎(或搜索任何网站)。
对新手友好,对专家满意。适用于日常、娱乐和工作。
包括多引擎网络搜索工具应具备的基本功能:
等等。除了以上基本功能外,它还可以:
等等...继续阅读自述文件
到处搜索?️寻找一切?。广度和重点。
使用方法:
浏览器扩展(推荐)
Web 应用程序:用于演示目的。 Web 应用程序无法像扩展一样完全发挥作用。网络应用程序可以在移动浏览器上使用。
使用扩展 | 广度和重点 | UI风格可选 |
---|---|---|
上下文选择搜索 | 不同的UI适配 | Vem(类似 Vimium) |
编辑搜索引擎 | 特殊的搜索方式,灵活性和可扩展性 | |
完整介绍和说明视频(Youtube)(选择您要观看的章节):
当例如想要翻译文章时很有用
- Firefox 隐身模式下没有(错误 1380812)
Ctrl+Alt+S
Chrome 及其他: Ctrl+Shift+S
Ctrl+Alt+D
Chrome 及其他: Ctrl+Shift+D
Firefox 上的更改 | Chrome 上的更改:
chrome://extensions/shortcuts
如果您使用过!bang
或多功能框,它们会要求您记住代码。
同时,Big Search 的 Vem 模式在视觉上让您可以方便地使用键盘(不间断地)单击不同搜索引擎的不同按钮。按Shift+Enter
进入 Vem 模式
钥匙 | 功能 |
---|---|
Shift+Enter | 完成输入并进入Vem模式(非Vem模式时使用) |
Shift+Enter | 与上面相反(在 Vem 模式下使用) |
I | 退出 Vem 模式并聚焦输入框 |
1 - 9 | 切换类别(Vem模式下) |
A - Z | 按相应按钮(Vem模式下) |
J K | 向下/向上滚动表格 |
更多待补充... |
上述按键绑定尚未正式确定。未来可能会根据用户反馈进行更改
请注意,如果添加新引擎,按钮顺序可能会发生变化,按钮键( A
- Z
)也是如此。
一个:
一般的 GET/POST 搜索流程是:
Big Search 的页内 Ajax 渲染搜索是:
页内Ajax渲染搜索功能可用于搜索不向公众提供GET/POST搜索接口的网站(例如SPA网站),或需要在搜索入口表单上分配随机令牌的网站。
“In-page-Ajax-render”是“ In-page -submit-form-via- Ajax -then-XHR-gets-search-result-then- render -and-show-in-page-without-web”的缩写-框架导航”
这部分在视频说明中也有解释
目前60+。查看内置搜索引擎列表
开源网络搜索(多引擎)工具比较
有经验的用户可能更喜欢直观的横向比较,以快速了解什么是特别的。 (顺便说一句也了解其他人)
在线GUI引擎编辑工具(链接1)(链接2)
一般使用上面的GUI编辑器。如果您不想使用GUI(例如您是高级用户并希望使用高级功能),请继续阅读以下内容。
Big Search 用户可以通过编程方式编辑搜索引擎。本节的以下段落是关于 JSON 格式的引擎数据规范。对于两者:
enginesdata.js
)您只需要编写非常简单的 JSON 并具有有关GET Method
的基本 HTTP 知识。
{
"Google" : " https://www.google.com/search?q={0} " ,
"Yahoo Search" : " https://search.yahoo.com/search?q={0} "
}
虽然上面简单且正确,但如果您是程序员,不建议使用显示名称作为键。例如,我们至少应该:
{
"yahoo" : {
"dname" : " Yahoo Search " ,
"full_url" : " https://search.yahoo.com/search?q={0} "
}
}
使用完整格式,您有机会使用该工具的所有功能。
此外,还支持混合短格式和完整格式的元素。
{
"yahoo" : {
"dname" : " Yahoo Search " ,
"addr" : " https://search.yahoo.com " ,
"action" : " https://search.yahoo.com/search " ,
"kw_key" : " q "
},
"google" : {
"dname" : " Google " ,
"addr" : " https://www.google.com " ,
"action" : " https://www.google.com/search " ,
"kw_key" : " q " ,
"btns" : {
"search" : {
"label" : " Google Search "
},
"lucky" : {
"label" : " I'm Feeling Lucky " ,
"params" : [
{ "key" : " btnI " , "val" : " 1 " }
]
}
}
},
"label_mbap" : { "lstr" : " Cross-engine " },
"itunesapps" : {
"dname" : " iTunes Apps (Google) " ,
"addr" : " https://www.apple.com/itunes/charts/free-apps/ " ,
"btns" : {
"search_apps" : {
"label" : " Search Apps " ,
"kw_format" : " {0} site:apple.com/*app " ,
"use_other_engine" : {
"engine" : " google " ,
"btn" : " search "
}
}
}
},
"label_usaj" : { "lstr" : " Search In-page-Ajax-render web " },
"chrome_ext_dev" : {
"dname" : " Chrome Ext Dev Doc " ,
"addr" : " https://developer.chrome.com/docs/extensions/reference/ " ,
"action" : " https://developer.chrome.com/docs/extensions/reference/ " ,
"ajax" : " .search-box__input "
},
"label_many" : { "lstr" : " Many Engines at once " },
"many_once" : {
"dname" : " Many Engines at once " ,
"btns" : {
"gg_ddg" : {
"label" : " Google + DDG " ,
"use_other_engine" : [ " google " , " duckduckgo " ]
}
}
}
}
这部分在视频说明中也有解释
JSON 格式。
完整格式的引擎数据可以包含以下键值(包括特殊搜索方法):
// # Some key-value in the button can override the key-value in the engine name
{
" engine_name " : {
" dname " : " Engine display name " ,
" addr " : " Homepage URL " , // # optional
" tip " : " Engine tip text " , // # optional
" action " : " form action url " ,
// # For example, https://search-engine.com/search?q=input_content,
// # The action is https://search-engine.com/search
" kw_key " : " The key name of the keyword in the query string " , // # In above example, it is q
" full_url " : " http://www.example.com/search/{0} " , // # optional. Only when GET method. Will override above two. The entire url
" method " : " get/post " , // # optional. default is get
" charset " : " UTF-8/gb2312/gb18030/big5/iso-xxxx.... " , // # optional. default UTF-8 (NOTICE: full_url not compatible with this
" allow_referer " : false, // # false(default)/true optional
" kw_replace " : [[" ", "-"]], // # Optional, characters that need to be replaced in the search term. In this example, replace spaces with '-'
" kw_format " : " formatted string with {0} " , // # optional. {0} is like %s
" params " :[ // # Optional, the key/value other than the keyword in the query string required for this operation. POST method may need
{"key": "key", "val": "value"},
// # For example, https://search-engine.com/search?q=input_content&option=searchall
// # so {key: "option", val: "searchall"},
],
" use_other_engine " : { // # optional, use another engine to do the operation.
" dbname " : " bigsearch/user/browser " , // # Optional. Where the engines database come from (3 available databases): BigSearch build-in database (default) / User custom database / Browser-installed database
" engine " : " engine name " ,
" btn " : " button name " // # Optional. Absence will make fallback to the first button
// # this entire object can be simplified to an engine name string
},
// # (if use array here, then do many operations at once)
" ajax " : ...... // # Optional. Read the In-page-Ajax-render websites instructions
" btns " : { // # optional. If there is no such item, a "Search" button is displayed, and clicking the button will do the default action
" Button name " : {
" label " : " Button display text " ,
" btn_tip " : " Tip text " , // # optional
" ... " : "..." // # here in a btn can be key-value pairs, which will override those in engine
},
....
}
},
}
这部分在视频说明中也有解释
有些网站不提供 GET/POST 搜索(或不以 HTML 形式响应结果)。访问者需要打开页面然后输入,然后通过 Ajax 在页面上显示结果。 (参见常见问题解答)
Big Search 可以处理此类页内 Ajax 渲染网站(通过将 js 注入浏览器网页,以自动输入、点击、表单提交)。并且易于配置:
例如1:指定输入框的css选择器。它会自动输入搜索词并触发按 Enter 事件。
"ajax" : " #search-box-input "
例2:延时2s->输入->延时1s->触发点击按钮事件
"ajax" : [ 2000 , " #search-box-input " , 1000 , " #submit-button " ]
这部分在视频说明中也有解释
我们鼓励用户将自定义的搜索引擎数据格式化为 JSON 后提交到源代码(提交到文件
enginesdata.js
)
这个工具仍然可以改进以做更多事情:
快速且轻量级:没有沉重的框架或库依赖性。虽然它的UI主题既简单又华丽,但所有主要功能和UI都是纯JS + CSS。
LZ-UTF8.js(38kB未缩小。数据压缩库,仅用于用户自定义引擎同步)
Copyright (c) 2021, Rotem Dan
Released under the MIT license.
雾湖(37kB webp。默认背景照片)
作者:Quang Nguyen Vinh
统一图标 (svg)
由 Iconscout 设计的 Unicons
因为目前只支持2种语言,还没有使用框架,只有一个简单的函数来实现多语言。
对于您希望它是多语言的字符串(也可以只保留英语),请使用 JS 函数i18n()
,其输入参数可以是:
[0]
为中文, [1]
为英文{zh: "This is Chinese, en: "This is English", fr: "This is French"}
对象它将返回对应语言的字符串
如果要添加仅针对某种语言的用户的搜索引擎,可以使用visible_lang
使其仅对某种语言可见。
这个工具的部分代码可以追溯到 2008 年左右。2015 年发布了 Web 应用程序,在互联网上向公众开放。直到 2020 年初,我发现 webExtension 和 JS 标准化了,所以把这个工具做成了浏览器扩展,并为其设置一个 Github 存储库。 (是的,它是缓慢而温和地发展的,而不是全职的。)
有些代码已经被(并且可能仍在被)重构。虽然仍然有一些老化的部件,但这个工具一直是现代的、方便的和有用的。
代码根据 AGPL 获得许可。
变更日志