// ==UserScript==
// @name 搜索引擎跳转
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 简单的搜索引擎跳转
// @author tgxh
// @include http://*
// @include https://*
// @match *://*/*
// @grant none
// ==/UserScript==
(function (window, document) {
'use strict';
let href = window.location.href,
css = ''
, styles = `
.t_search_list {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.t_search_list a {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-right: 10px;
font-size: 16px;
color: #666 !important;
text-decoration: none;
}
.t_search_list a:hover {
background-color: #fff !important;
}
.t_search_list a > img {
margin-right: 2px;
width: 16px;
height: 16px;
}
body.vasq #hdtbMenus.hdtb-td-o {
top: 90px !important;
}
`
/*
* name:显示名字
* url:页面url匹配正则
* id:输入框id
* selector:插入位置选择器,jquery写法
* link:跳转的搜索链接,用%s代替搜索关键词
* icon:base64图标,20×20 */
let siteInfos = [
{
name: 'Google',
url: /^https?:\/\/(www|encrypted)\.google(?:\.\D{1,3}){1,2}\/(webhp|search|#|$|\?)/i,
id: '#lst-ib',
selector: '#before-appbar',
link: 'https://www.google.com/search?hl=zh-CN&safe=off&q=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAOESURBVDhPjZRdaBxVFMf/985sZjeT3UmTzbY0Lbam8aFqQSWGhiSCsQVF2hIoiG0pRfzAjycDJVA0oIhCS0pSHwwpVTTSir4IfaoWjMQmxEqFNg9Vmuajgexmd5M02dnd2ZnruXdna74s/nbP7uWcM/8599wzwwSBDcgOXkX+2iCcP6/DjcfJI6DVxBB48mmUNT+HYGtbMXEN6wRzI0OYP/kexHwazDDAgiEwXVcxUShA5LLwsjY0qwrW6c9hNOxVsRLc/1csfvohUq8eAGOAFq0BD0dooUG4rjK55hVh6NEYrTkS+5uQ+f5b/+oiDwQXP+tCZuAC9J11YJoOWbiXnFP/LGKBW5UQdCPlo3wvnYJ57ARCL7cXBUrILdtDQ2KmrkrE2xqUzbbsEfd2VYulL/uEMzUhPJlEOPemxNLX/WJ6c0DEDz7ve1ejephsfxzOZBhapQfhOICuIfbz7/4tN0Y4BbBAsbcr4d7cZVhvjyHYmIK7GEBh/C5qrgz74f9mIzEJF7M/AtRv662/YO4bRfj9TjC+cfL/geV/fVQw+w41XKfxKEBrGAQzW/zwv4RfW8DuWk499x1rSC0B3ccMOuXcFMmSGJUpvGogUO+nrKa8jKEiyGEG2TqrIIuEGJL3V4yNvDGjH2kPgyZHmYTRh9PQMmmkVPAECRrbSYxOjJa6mwTs2376amxHIJMTWM5BmZ2nWaT9l1ogPKgqWeHmG4JN94EbwNlkDPaOj9H5zOvFrBW4nkcPR6k2CcOp72z8dMuFaTDEFzz0Hg+BazUH1Cl3pJvQnduHT0b7qHRyrEHjsjulDReFB37LKzFZaaUJ7NrCaZ+xF3FwqQ0XM48gptmos2rReOmwuuBhHDmXx9bK4hHIx7za1LCtSgrSt6P5NOzlvynEEKAZLAgX1X2N+OLmRUzen1EXSWYzc7g8cQW7+9/E7cQ8ynmYvALTKYEzR6lnxIPXV9dIL86P/YAt5VEVkO5kdh6bDAuRMlOd5LKTQcJOwwoGoNHMRsZ7kUrU43CTi1OH1ghKukZ60HPjG+yI1FLPNOXz6PhkjyRyRLicD8KjXYzbN3B001foOdSqfJJ1L9ihmT/w7i8fIZ1dgKGXIaQZ0P1HUbYi5+ZVpRUBEx88+w5eeewlFSuxTrDE1alhDM6M4np8DLPLCfUujAar8ES0Hi/U7kXT1qcQplasBvgH1qCFGHJd9A0AAAAASUVORK5CYII='
},
{
name: 'Baidu',
url: /^https?:\/\/www\.baidu\.com\/(?:s|baidu)/i,
id: '#kw',
selector: '#wrapper_wrapper',
link: 'https://www.baidu.com/s?wd=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAA3NCSVQICAjb4U/gAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAABxUlEQVQ4T62VoasCQRDG971g0CLIgSIWk9rshxabqMH/wCZoFbxo1mQ+o8Fss4kIYhFsYjNqsoggzLsZd+ftnXv6wvvB8GZm5/v23d5yfoGHCGEymYjVaiVOpxPVmUxG2LYtWq0W1UbQMEilUsFN3gbOmPAZbjYbo/hdoEaHDU1m3W6X1nK5HNXxeBzG4/HLnG7KhsEhDMXxePTV6/U6dJaysDNTXC4XKBaLsnoSnFVnSip9AR9zuVxSfj6faWg4HIJlWZQjo9HIp1GBCNd1uRGNRqmJbLdb6jWbTV7HHDeMxWK03ul0eA2DvLw7xY1arSbtAB6PB/fxpaTTaa4Ph4OcAshms9wnr+D5KebzOdX4+IrBYEC96/UqOwCNRoO15BU0TKVSz528vN/vS9kv+XweptOprAAikQhryUt/ZD16vZ6UvIKbFgoFupe6hrz0l6JC/w/CKJfLLzrywkW9WSqVSPAXEomET4t8ewmeI/4hPEOZfaZarcpM8yBbD0wxksmk7HwGL7vSKTjTPw71eh32+z3sdjuYzWb0ghzHgcViAff7HW63G7TbbZ43fhwQ0xfnU+hmiM9QEbybpsAZE//8EyDED1pMSqJthJ2mAAAAAElFTkSuQmCC'
},
{
name: 'Bing',
url: /^https?:\/\/.*\.bing\.com\/search\?/i,
id: '#sb_form_q',
selector: '#b_tween',
link: 'http://cn.bing.com/search?q=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAY1BMVEUAAAAAg3MAgnQAg3MAhHMAhnAAhHIAh3AAiW8AhXIAhHMAiG8AhHMAg3MAgXcAhnAAgnQAhHMAhXIAhXIAhnEAiW4AhnIAhXIAh3AAhnAAhHQAnV0Aim0AgHYAg3MAgnQAf3ZXmxj4AAAAHnRSTlMAlwnw2ZGJhBPe0zs2MSol+u3Lwri1pZxrakxCBAHnfGw/AAAAf0lEQVQY06XQxw6DQAwEUMNWenqPh///ysgrBZldbvjkeQdrZCJyNkyUTwXgXCAzo95A3onfri6RPLu+wDgDTZiym1cwgPY5aHzPkMKoNNLgjrKtkT4WBQaIQSG9TCL2/YLmlAiX+K8kOVHTLeW9QbLDg9TEm/S+5z8ZWzuq+APjIhCFQMo26AAAAABJRU5ErkJggg=='
},
{
name: 'Zhihu',
url: /^https?:\/\/www\.zhihu\.com\/search\?/i,
id: '#q',
selector: '.zg-wrap.zu-main',
link: 'https://www.zhihu.com/search?type=content&q=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAyVBMVEUAAAAPiPAPiOsNiewPh+sOiO0PiOwPiesMiu8QiOoNiuwNh+4OiewPhu4PiOwNiO0PiOsQieoPh+wPiOsPh+wQhusOiewPh+wOi+0QiOoQiOoPiOsNie0Nje0Qf+oPiewOiOwQiOoHhPgJiuwOie0Ok+wPduoOjOwTceYQiOsNj+4RiukMlu4OkewLu/INeegQcuoRkuoHgPIMn+4PnOoKmvEFy/cEqOsMiewJxfUPiOsPiesQh+oRguoQhOoTfugPiO0QdusTdeZlefBFAAAAOnRSTlMAEeQ1jHP7fScDg2QuLB/w6eHY1MixcVpL+NHCpId9d2oaFg0H7+HdzczLuLeoj3dnX15XUU9CNjUiGX7+qQAAAORJREFUGNNlzddSwzAQheFjsGwLl8Td6ZXeO6wkB3j/h0KSGQ+ZfDc78492Be2xxoFQNIdxNEBn43Q2QCCll2eeN0DtkeFNAFdcF0RFcclDmrqaSMGl3qYc2gk5ZoghWBqAiwyaTx9m0BESPbY07uLxX7SotOt95MsF8ymvGFsv+8iIJFl+08cgjuNQuEEcrRZ7N1/bZP+mcduOn8zv4l/k6ur85w2YU2Lj0K6pF3yrT8zVMxBElAJYya813tUFZlI0ZUv2Zba7B3B3hqgatWLGqhrR6e4Ghrk3nTgwwvIBvW03fgEtdxsaMJPDZQAAAABJRU5ErkJggg=='
},
{
name: 'Douban',
url: /^https?:\/\/www\.douban\.com\/search*/i,
id: 'input[name="q"]:not(#inp-query)',
selector: '.article',
link: 'https://www.douban.com/search?q=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAolBMVEUAAAB+v2J6t2dbmE+CwGdXlEt+v2CBwWWCwWVZnFFYm09WlUyAwmKDxGSDxGRoqFVUkElUlkt8vF9/wGF2u16CwmaDwmaBwmSBwmNkolJblUyCwmN5uV5/v2KAwWODw2Vsq1ZrqVZ+v2N1uF9npFN/v2R/vmR6tmd6uGh/v2NPikeAwWF+wF9/w16Bw2KDxGN9v2CN0GiIyWV6u16JzGeJy2YgFv1YAAAAK3RSTlMAnFoOsxz4x7QYJRbv6NaCEwXs5eDQuq6naTEo3tbOnZmXhX18YF9BORYLIxg7yAAAAK1JREFUGNNtyNcSgjAQheFVJBoQKRaKvZeFJYC+/6sJRDKTwe/qnB/s836gOz3BWuSom66bmOrq6Js+6NrwGGru0JhllCmUOW2cpGykTNOxjGIOyu5f3KrogDLrYuoYShdXKCr8qUS2lJEIMW8hEsnoJfi5eGbNjktKPJDcIpBjUxxACQoXanHB5Dc454ZbomXbFnsfX5ybBkSISExQjpiTYFTfCELsCeE66Ll9AeogHP6ZE4gWAAAAAElFTkSuQmCC'
},
{
name: 'Taobao',
url: /^https?:\/\/s\.taobao.com\/search*/i,
id: '#q',
selector: '.grid-total:nth-of-type(3)',
link: 'https://s.taobao.com/search?q=%s',
icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAyVBMVEUAAAD/QQD/PwD/QgD/PwD/QgD/QwD/QgD/QwD/QgD/QwD/QQD/PgD/QgD/QQD/QgD/RgD/PQD/QwD/QgD/QQD/QwD/QQD/SgD/QgD/QgD/QwD/PgD/QAD/QwD/QgD/QgD/RQD/QgD/QAD/QwD/QwD/RwD/OgD/RAD/QAD/PwD/UAD/RQD/PwD/OwD/TgD/QgD/QgD/QAD/NQD/PgD/RgD/NQD/QQD/OQD/QwD/NQD/QQD/RAD/LQD/PwD/OgD/QgD/QAD/RQD/PQBcumVlAAAAP3RSTlMA67aIGfbwnHJZRQ8L4NnWzMG7sqCXg2hmYD87LPrl0cGopY56T0k2NCkWAu/j4uHa19KvrJuain96VCYYEwRAliStAAAA5klEQVQY05WQR7LCQBBDezxOOAdwJmf4OWfNcP9D/cEuL1iinVRPqq6mqzSoiOzN4SLLwH5IGlty68Iu910ogHUF+XwrgTEQNW3bjF0GwP9yleMQegcnWFhY9sVcgRiQGdMjZvM0DKe7ieBEhZTvRE8yA2BZbw3DSPG6hpqiNU0QKecBw3YGq1/fxFkm295j0W2X3sapGR4cbntGR87wpzGbfGhkBGS0m6OTRnenFwoQDoFyiozcVyH39CkFAJHw8SoQOVUCscLzeWIVjUffS0A/X+T0r9EVjJvWHo99eOBp+rGjK/QP7eUe3eatJugAAAAASUVORK5CYII='
}
]
/*
* id:输入框的id
* selector:插入位置的选择器,jquery写法
* type:插入方式appendChild、insertFirst,分别是selector的子元素第一个和最后的位置
* css:搜索条自定义样式*/
function createList(id, selector, css, type, before) {
let word = document.querySelector(id).getAttribute('value')
// debugger
let styleEle = document.createElement('style')
styleEle.innerHTML = styles
document.querySelector('head').appendChild(styleEle)
let wrap = document.createElement('div')
wrap.className = 't_search_wrap'
wrap.style.cssText += css
wrap.innerHTML = '<div class="t_search_list"></div>'
switch (type) { //插入方式,可以自定义
case 'appendChild':
document.querySelector(selector).appendChild(wrap)
break
case 'insertFirst':
let p = document.querySelector(selector)
p.insertBefore(wrap, p.firstChild)
break
case 'insertBefore':
let q = document.querySelector(selector)
q.insertBefore(wrap, q.querySelector(before))
default:
break
}
let listele = document.querySelector('.t_search_list')
listele.innerHTML = `<a href=""></a>`.repeat(siteInfos.length)
let linklist = listele.querySelectorAll('.t_search_list a')
linklist.forEach((item, i) => {
item.innerHTML = `<img src="${siteInfos[i].icon}">${siteInfos[i].name}`
item.href = siteInfos[i].link.replace(/%s/, word)
})
}
function init() {
siteInfos.some(item => {
if (item.url.test(href)) {
switch (item.name) {
case 'Google':
css = 'padding-left: 165px; padding-top: 10px;'
createList(item.id, item.selector, css, 'appendChild')
break
case 'Baidu':
css = 'padding-left: 121px; padding-top: 10px;'
createList(item.id, item.selector, css, 'insertFirst')
break
case 'Zhihu':
css = 'margin-top: -15px; margin-bottom: 10px;'
createList(item.id, item.selector, css, 'insertFirst')
break
case 'Bing':
css = 'margin-top: -18px;margin-bottom: 5px;'
createList(item.id, item.selector, css, 'insertFirst')
break
case 'Douban':
css = 'margin-top: -20px;margin-bottom: 8px;'
createList(item.id, item.selector, css, 'insertBefore', '.search-cate')
break
case 'Taobao':
css = 'padding-left: 258px;margin-top: 5px;'
createList(item.id, item.selector, css, 'insertFirst')
default:
break
}
return true
}
})
}
window.addEventListener('load', init, false)
})(window, document);