您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
【让百度搜索聚合找片功能】,从此找片更为方便!
// ==UserScript== // @name 百度找片 // @namespace https://greasyfork.org/zh-CN/scripts/26919 // @namespace https://coding.net/u/BackRunner/p/GreaseMonkey-JS/git // @contributionURL https://sinacloud.net/backrunner/img/alipay.jpg // @version 2.0.1 // @description 【让百度搜索聚合找片功能】,从此找片更为方便! // @author BackRunner // @include *://www.baidu.com* // @exclude *://www.baidu.com/link?url* // @license MIT // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // ==/UserScript== (function() { //变量定义 var isOpen = true; var content = ''; var judge = false; var engineIndex = 0; var engineList = new Array(); var divList = new Array(); var hrList = new Array(); var inputList = new Array(); var ctrlContainer; var cPanel; //数组Remove Array.prototype.remove=function(dx) { if(isNaN(dx)||dx>this.length){return false;} for(var i=0,n=0;i<this.length;i++) { if(this[i]!=this[dx]) { this[n++]=this[i]; } } this.length-=1; } ; var Engine = { new:function(){ var a = {}; a.name = ""; a.link = ""; return a; } }; //主执行区 initialize(); if (isOpen){ process_direct(); bindEvent(); addCSS(); addSetting(); } //初始化 function initialize(){ engineList = initialize_var("engineList",new Array()); isOpen = initialize_var("isOpen",true); engineIndex = initialize_var("lastIndex",0); } function initialize_var(name,defaultSet){ var obj = GM_getValue(name,defaultSet); if (obj === undefined){ obj = defaultSet; } return obj; } //跳转处理 function process_direct(){ var search = window.location.search; var part = search.split('&'); for (var i=0;i<part.length;i++){ if (part[i].indexOf("wd=")!==-1){ content = part[i].replace('wd=',''); } } part = content.split('%20'); if (part[part.length - 1]==="%E6%89%BE%E7%89%87"){ content = content.replace('%20%E6%89%BE%E7%89%87',''); if (content !== (encodeURIComponent(GM_getValue("lastContent")))){ //跳转 //window.location.href = "http://www.zmz2017.com/search/index?keyword="+content; redirect(content); } GM_deleteValue("lastContent"); } } //判断并截取搜索内容 function process_event(){ content = $('#kw').val(); var part = content.split(' '); if (part[part.length-1] === '找片'){ judge = true; content = content.replace(' 找片',''); GM_setValue('lastContent',content); //跳转 //window.location.href = "http://www.zmz2017.com/search/index?keyword="+content; redirect(content); //reset judge=false; } } //跳转 function redirect(content){ if (engineList[engineIndex] !== undefined){ var engineLink = engineList[engineIndex].link; engineLink = engineLink.replace("%content%",content); window.location.href = engineLink; } } //绑定百度一下按钮和回车 function bindEvent(){ try{ var btn = document.getElementById('su'); btn.addEventListener('click',process_event); }catch(e){ console.error(e); } } function addSetting(){ var ctrlDiv = document.createElement('div'); ctrlDiv.setAttribute('class','br-setting'); //矩形 var a = document.createElement('a'); a.setAttribute('class','icon-setting'); a.setAttribute('id','br-setting-icon'); ctrlDiv.appendChild(a); //层 var ctrl = document.createElement('div'); cPanel = ctrl; ctrl.setAttribute('class','br-ctrl'); //容器背景 var box = document.createElement('a'); box.setAttribute('class','br-ctrl-bg'); //容器 var container = document.createElement('div'); ctrlContainer = container; container.setAttribute('class','br-ctrl-container'); box.appendChild(container); //内容 addTitleToSetting(container,"百度找片 (2.0.1) | 设置"); addCheckBoxToSetting(container,"总开关","main"); addSubTitleToSetting(container,"引擎选择","engine"); addButtonToSetting(container,"添加引擎","添加","addEngine"); //引擎列表初始化 for (var i=0;i<engineList.length;i++){ addEngineToSetting(container,engineList[i],false); } //单选初始化 if (inputList[engineIndex] !== undefined){ inputList[engineIndex].checked = true; } //内容 addSubTitleToSetting(container,"操作","operation"); addButtonToSetting(container,"前往 GreasyFork 检查更新","检查","update"); addButtonToSetting(container,"获取推荐引擎列表","获取","getlist"); addButtonToSetting(container,"捐赠以感谢作者","捐赠","donate"); ctrl.appendChild(box); document.body.appendChild(ctrlDiv); document.body.appendChild(ctrl); //添加引擎事件绑定 try{ var btn_addEngine = document.getElementById("br-ctrl-addEngine"); btn_addEngine.addEventListener('click',addEngine); } catch(e){ console.error(e); } //绑定控制面板鼠标事件 ctrlDiv.addEventListener('mouseenter',ctrlMouseEnter); ctrlDiv.addEventListener('mouseenter',ctrlMouseEnter); ctrl.addEventListener('mouseleave',ctrlMouseLeave); ctrl.addEventListener('mouseleave',ctrlMouseLeave); //总开关事件绑定 try{ var cb = document.getElementById('br-ctrl-main'); cb.addEventListener('click',targetMain); //总开关初始化 cb.checked = isOpen; } catch (e) { console.error(e); } //操作按钮事件绑定 try{ var btn_update = document.getElementById('br-ctrl-update'); var btn_getlist = document.getElementById('br-ctrl-getlist'); var btn_donate = document.getElementById('br-ctrl-donate'); btn_update.addEventListener('click',updateEvent); btn_getlist.addEventListener('click',getlistEvent); btn_donate.addEventListener('click',donateEvent); } catch (e){ console.error(e); } } function addEngine(){ if (engineList.length === 0){ engineIndex=-1; } var e = Engine.new(); e.name = prompt("请输入 引擎名称"); if (e.name !== null && e.name !== ""){ e.link = prompt("请输入 引擎调用链接,搜索内容用关键字 %content% 代替"); if (e.link !== null && e.link !== ""){ if (e.link.indexOf("%content%") !== -1){ engineList.push(e); addEngineToSetting(ctrlContainer,e,true); saveSetting(); } else { if (confirm("您输入的调用链接中不含 %content% ,是否重新创建?")){ addEngine(); } } } } } //总开关事件 function targetMain(){ isOpen = event.target.checked; saveSetting(); } //控制面板鼠标事件 function ctrlMouseEnter(){ cPanel.setAttribute('style','display:block !important;'); } function ctrlMouseLeave(){ cPanel.setAttribute('style','display:none;'); } //操作按钮事件 function updateEvent(){ window.open('https://greasyfork.org/zh-CN/scripts/26919'); } function getlistEvent(){ window.open('http://blog.backrunner.top/p/120'); } function donateEvent(){ window.open('https://backrunner.top/img/alipay.jpg'); } function deleteEngine(){ if (confirm("是否删除该引擎?")){ var button = event.target; var div = button.parentNode; var index = divList.indexOf(div); if (index !== -1){ div.parentNode.removeChild(hrList[index]); div.parentNode.removeChild(div); engineList.remove(index); inputList.remove(index); hrList.remove(index); divList.remove(index); } saveSetting(); } } function saveSetting(){ GM_setValue("isOpen",isOpen); GM_setValue("engineList",engineList); GM_setValue("lastIndex",engineIndex); } function addTitleToSetting(container,content){ var div = document.createElement('div'); div.setAttribute('class','br-ctrl-main'); var h2 = document.createElement('h2'); var hr = document.createElement('hr'); h2.innerHTML = content; div.appendChild(h2); container.appendChild(div); container.appendChild(hr); } function addSubTitleToSetting(container,content,id){ var div = document.createElement('div'); div.setAttribute('class','br-ctrl-main'); div.setAttribute('id','br-ctrl-sub-'+id); var h3 = document.createElement('h3'); var hr = document.createElement('hr'); h3.innerHTML = content; div.appendChild(h3); container.appendChild(div); container.appendChild(hr); } function addCheckBoxToSetting(container,content,id){ var div = document.createElement('div'); div.setAttribute('class','br-ctrl-main'); var span = document.createElement('span'); var input = document.createElement('input'); var hr = document.createElement('hr'); input.setAttribute('id',"br-ctrl-" + id); input.setAttribute('type','checkbox'); span.innerHTML = content; div.appendChild(span); div.appendChild(input); container.appendChild(div); container.appendChild(hr); } function addEngineToSetting(container,engine,toLast){ var div = document.createElement('div'); var o_div = document.getElementById('br-ctrl-sub-operation'); div.setAttribute('class','br-ctrl-main'); var span = document.createElement('span'); var input = document.createElement('input'); var button = document.createElement('button'); var hr = document.createElement('hr'); input.setAttribute('type','radio'); input.setAttribute('name','br-engine'); //如果为第一个引擎则执行 if (engineIndex === -1){ engineIndex = 0; input.checked = true; } button.innerHTML = "删除"; //为删除按钮绑定事件 try{ button.addEventListener('click',deleteEngine); } catch(e){ console.error(e); } //为单选绑定事件 try{ input.addEventListener('click',radioSelected); } catch (e){ console.error(e); } span.innerHTML = engine.name; div.appendChild(span); div.appendChild(button); div.appendChild(input); if (!toLast){ container.appendChild(div); container.appendChild(hr); }else{ container.insertBefore(div,o_div); container.insertBefore(hr,o_div); } //加入列表 divList.push(div); hrList.push(hr); inputList.push(input); } //单选事件 function radioSelected(){ engineIndex = inputList.indexOf(event.target); saveSetting(); } function addButtonToSetting(container,content,btnContent,id){ var div = document.createElement('div'); div.setAttribute('class','br-ctrl-main'); var span = document.createElement('span'); var button = document.createElement('button'); var hr = document.createElement('hr'); button.setAttribute('id',"br-ctrl-" + id); span.innerHTML = content; button.innerHTML = btnContent; div.appendChild(span); div.appendChild(button); container.appendChild(div); container.appendChild(hr); } //CSS添加 function addCSS(){ var cssText = ""; cssText += ".br-setting {width: 22px;position: fixed;bottom: 20px;right: 25px;font-size: 0;line-height: 0;z-index: 100;}"; cssText += ".br-setting a {width:22px;height:22px;display: inline-block;background-image:url(https://sinacloud.net/backrunner/icons/zhaopian_icon.png);background-repeat:norepeat;background-position:center;background-color: #ddd;margin-bottom: 2px;border-radius:4px 4px 4px 4px;opacity:0.4;} .br-setting a:hover {background-color: #669fdd;}"; cssText += ".br-ctrl {display:none !important;width:300px;position:fixed;bottom:16px;right:50px;display:block;}"; cssText += ".br-ctrl-bg {width:300px;height:480px;display: inline-block;background-color: #ddd;margin-bottom: 2px;border-radius:4px 4px 4px 4px;opacity:0.65;}"; cssText += ".br-ctrl-container {width:300px;height:480px;position:fixed;overflow-x:hidden;} .br-ctrl-container ::-webkit-scrollbar-button{display:none;}"; cssText += ".icon-setting {background-position: 0 -266px;}"; cssText += ".br-ctrl-main {text-align:left !important;display: block;margin-top:10px;margin-left:20px;margin-bottom:10px;line-height:18px} .br-ctrl-main h2{display:inline-block;font-size:20px;-webkit-margin-before: 0.83em;-webkit-margin-after: 0.83em;-webkit-margin-start: 0px;-webkit-margin-end: 0px;} .br-ctrl-main h3{display:inline-block;font-size:16px;-webkit-margin-before:initial !important;-webkit-margin-after:initial !important;-webkit-margin-before: 0px;-webkit-margin-after: 0px;-webkit-margin-start: 0px;-webkit-margin-end: 0px;} .br-ctrl-main span {display;inline-block;font-size:14px;} .br-ctrl-main input,button {display;inline-block;float:right;margin-right:12px !important;margin-bottom:10px !important;}.br-ctrl-container hr{width:280px;}"; cssText += '.br-ctrl-main input[type="radio" i] {margin: 3px 3px 0px 5px;} .br-ctrl-main input[type="checkbox" i] {margin: 3px 3px 3px 4px;}'; cssText += '.br-ctrl-main button{margin: 0em 0em 0em 0em;padding: 1px 6px;}'; cssText += '.br-ctrl-container hr{margin:auto !important;}'; var modStyle = document.querySelector('#modCSS'); if (modStyle === null) { modStyle = document.createElement('style'); modStyle.id = 'modCSS'; document.body.appendChild(modStyle); } modStyle.innerHTML = cssText; } })();