有没有尝试过可编程搜索,比如我定义这么一个对象
Object.assign( opera , {
search( str , opts )
{
const uri = {
protocol: 'https' ,
hostname: '
www.google.com' ,
path: 'search' ,
query: {
hl: 'zh-CN' ,
lr: 'lang_zh-CN' ,
safe: 'off' ,
q: str ,
},
};
const { query } = uri ;
if(opts)
{
Object.entries(opts).forEach( ([ key , val ]) => {
if( key === 'hl' && val === 'en' )
delete query['lr'];
if( val === 'delete' )
delete query[key];
else
query[key] = val ;
} );
}
location = decodeURIComponent( new URI(uri) );
},
} );
然后 opera.search('site:
developer.mozilla.org+%s') 就是 MDN 站内搜索
输入 mdn someString
这样 opera.search('%s',{hl:'en'}) 就是纯英文 Google 搜索
输入 ge someString
这样 opera.search('site:
zhidao.baidu.com+%s',{tbs:'qdr:y'}) 就是近一年的百度知道
输入 zd someString
特别的,opera.search('site:'+location.hostname+'+%s') 就是任意当前网站的站内搜索
输入 st someString
本质上是 open search 和 user script 的混搭,不过比 open search plugin 更进一步