// ==UserScript==
// @name Seach All Free Image 【一键搜免费商用图JPG+PNG+ICO】
// @name:en Seach All Free Image [JPG+PNG+ICO]
// @description 一键搜免费商用图片,JPG + PNG + ICO
// @description:en One key search free commercial pictures, JPG + PNG + ICO
// @version 3.4
// @namespace https://zhuanlan.zhihu.com/p/68705177
// @description for Designer
// @author pealpool
// @match https://www.google.com/search?*
// @match https://www.google.com.*/search?*
// @match https://*.bing.com/images/search?*
// @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
// @run-at document-end
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_addStyle
// @downloadURL https://update.greasyfork.icu/scripts/382725/Seach%20All%20Free%20Image%20%E3%80%90%E4%B8%80%E9%94%AE%E6%90%9C%E5%85%8D%E8%B4%B9%E5%95%86%E7%94%A8%E5%9B%BEJPG%2BPNG%2BICO%E3%80%91.user.js
// @updateURL https://update.greasyfork.icu/scripts/382725/Seach%20All%20Free%20Image%20%E3%80%90%E4%B8%80%E9%94%AE%E6%90%9C%E5%85%8D%E8%B4%B9%E5%95%86%E7%94%A8%E5%9B%BEJPG%2BPNG%2BICO%E3%80%91.meta.js
// ==/UserScript==
(function() {
'use strict';
var jh = false;//聚合标记
var jhsum = 0;//聚合统计
var eReg = /\s(\(site:).*/;
var eReg_g = /https\:\/\/www\.google\.com.*(\/search?).*(tbm\=isch)/;
var eReg_b = /https\:\/\/.*\.bing\.com\/images\/search\?/;
var myConfig = {};
var SearchEngine = '';
var defConfig = {
JhSelect:[
"everypixel","freepik","pixabay",
],
google:true,
bing:true,
chamber:true,
colorhub:true,
designerspics:true,
everypixel:true,
freeimages:true,
freemagebank:true,
freepik:true,
foter:true,
gratisography:true,
hippopx:true,
lifeofpix:true,
pexels:true,
picjumbo:true,
pixabay:true,
pxhere:true,
shopify:true,
stocksnap:true,
unsplash:true,
visualhunt:true,
freepngimg:true,
hiclipart:true,
kisspng:true,
pngmart:true,
pixelsquid:true,
pngall:true,
pngimg:true,
pngpix:true,
snipstock:true,
stickpng:true,
easyicon:true,
flaticon:true,
icons8:true,
iconfont:true,
iconninja:true,
iconshock:true,
};
var divStr_1 = "
More
Png
Ico
";
if (GM_getValue("Config") != null) {
myConfig = GM_getValue("Config");
} else {
myConfig = defConfig;
}
for(var key in defConfig){
if(typeof(myConfig[key]) == "undefined"){
myConfig[key] = defConfig[key];
}
}
GM_setValue("Config", myConfig);
if(eReg_g.test(window.location.href)){
SearchEngine = 'google';
GMaddStyle(`
.myK{
margin-left:860px;
margin-top: -9px;
position: absolute;
}
.mybtnWoW{
height:44px;
width:70px;
border-radius: 24px;
border: 1px solid #dfe1e5;
text-align:center;
line-height:45px;
cursor:pointer;
float:left;
margin-top:-46px;
background:#fff;
font-size:16px;
font-weight: bold;
position: relative;
z-index:500;
color:#757575;
}
.mybtnWoW:hover{
box-shadow: 0 1px 6px 0 rgba(32,33,36,0.28);
border-color: rgba(223,225,229,0);
}
#myPNG{
margin-left:180px;
}
#myICO{
margin-left:260px;
}
.mybtnRight{
float:left;
width:80px;
height:20px;
margin-left:76px;
margin-top:-32px;
position: relative;
z-index: 500;
}
.myinput{
float:left;
width:125px;
border-radius:6px;
color: #3C4043;
}
.myinput:hover{
background:#eee;
}
.mybtnWoW span:nth-child(1){
color:#4285F4;
}
.mybtnWoW span:nth-child(2){
color:#EA4335;
}
.mybtnWoW span:nth-child(3){
color:#FBBD07;
}
.mybtnWoW span:nth-child(4){
color:#34A853;
}
.myhot{
color:#EA4335;
}
.lll{
width:1px;
height:35px;
background-color:#dfe1e5;
float:left;
margin-top:-40px;
margin-left:165px;
}
.myckPNG{
margin-left:179px;
}
.myckICO{
margin-left:259px;
}
.mylk{
border-radius: 24px;
border: 1px solid #dfe1e5;
background: #fff;
z-index: 70;
box-shadow: 0 1px 6px 0 rgba(32,33,36,0.28);
position:absolute;
padding:15px;
width: 120px;
margin-top:9px;
font-size:12px;
}
.myhelp{
float:left;
margin-top:-34px;
margin-left:340px;
}
.myhelp svg{
width:22px;
height:22px;
}
.myhelp svg:hover{
width:24px;
height:24px;
margin-top:-1px;
margin-left:-1px;
}
.myhelp svg:active{
width:22px;
height:22px;
margin-top:0px;
margin-left:0px;
}
.myTopK{
height:25px;
}
.mylittleBm{
cursor:pointer;
margin-left:3px;
width:35px;
height:18px;
line-height:20px;
text-align:center;border-radius:7px;
border: 1px solid #dfe1e5;
float:left;
color: #3C4043;
}
.mylittleBm:hover{
color: #000;
background:#eee;
}
.mylittleBm:active{
color: #3C4043;
}
.mylittleBm.myBann{
cursor:default;
color:#bfbfbf;
}
.mylittleBm.myBann:hover{
background:none;
}
`);
$("header").after(divStr_1 + "bing' type='checkbox' value='' checked='checked'/>bing" + divStr_2);
var $baseAG = $('header input[title="Search"]');
$baseAG.attr('value',$baseAG.val().replace(eReg,''));
}else if(eReg_b.test(window.location.href)){
SearchEngine = 'bing';
GMaddStyle(`
.myK{
margin-left:825px;
margin-top:-45px;
position: absolute;
}
.mybtnWoW{
height:40px;
width:70px;
border-radius: 6px;
border: 0px solid #eee;
text-align:center;
line-height:43px;
cursor:pointer;
float:left;
margin-top:-46px;
background:#fff;
font-size:16px;
font-weight: bold;
position: relative;
z-index:500;
box-shadow: 0 0 0 1px rgba(0,0,0,.1), 0 2px 4px 0 rgba(0,0,0,.16);
}
.mybtnWoW:hover{
box-shadow: 0 0 0 1px rgba(0,0,0,.1), 0 2px 4px 1px rgba(0,0,0,.18);
}
#myPNG{
margin-left:180px;
}
#myICO{
margin-left:260px;
}
.myinput{
float:left;
border-radius:6px;
color: #3C4043;
width: 125px;
}
.myinput:hover{
background:#f1f1f1;
}
.mybtnRight{
float:left;
width:80px;
height:20px;
margin-top:-33px;
margin-left:75px;
}
.mybtnWoW span:nth-child(1){
color:#00809d;
}
.mybtnWoW span:nth-child(2){
color:#666666;
}
.mybtnWoW span:nth-child(3){
color:#de3700;
}
.mybtnWoW span:nth-child(4){
color:#666666;
}
.myhot{
color:#de3700;
}
.lll{
width:1px;
height:35px;
background-color:#d8d8d8;
float:left;
margin-top:-42px;
margin-left:165px;
}
.myckPNG{
margin-left:179px;
}
.myckICO{
margin-left:259px;
}
.mylk{
border-radius:6px;
border: 1px solid #dfe1e5;
background: #fff;
z-index: 70;
box-shadow: 2px 5px 6px rgba(32, 33, 36, 0.28);
position:absolute;
padding:10px;
width: 125px;
margin-top:5px;
font-size:12px;
}
.myhelp{
float:left;
margin-top:-36px;
margin-left:340px;
}
.myhelp svg{
width:22px;
height:22px;
}
.myhelp svg:hover{
width:24px;
height:24px;
margin-top:-1px;
margin-left:-1px;
}
.myhelp svg:active{
width:22px;
height:22px;
margin-top:0px;
margin-left:0px;
}
.myTopK{
height:25px;
}
.mylittleBm{
cursor:pointer;
margin-left:4px;
width:35px;
height:18px;
line-height:20px;
text-align:center;border-radius:3px;
border: 1px solid #dfe1e5;
float:left;
color: #3C4043;
}
.mylittleBm:hover{
color: #000;
background:#eee;
}
.mylittleBm:active{
color: #3C4043;
}
.mylittleBm.myBann{
cursor:default;
color:#bfbfbf;
}
.mylittleBm.myBann:hover{
background:none;
}
`);
$("#b_header").after(divStr_1 + "google' type='checkbox' value='' checked='checked'/>google" + divStr_2);
$('#sb_form_q').attr('value',$('#sb_form_q').val().replace(eReg,''));
}
//console.log('print:' + GM_getValue('Config').google);
//var abcdefghi = 'JhSelect';
//console.log('print:' + myConfig[abcdefghi]);
$('.myinput input').each(function(){
if(myConfig[$(this).prop('name')] == false){
$(this).prop('checked',false);
}
});
function GMaddStyle(cssText){
let a = document.createElement('style');
a.textContent = cssText;
let doc = document.head || document.documentElement;
doc.appendChild(a);
}
function mySelectJPG(name,keyword){
switch(name){
case 'google':
openNewWindow("https://www.google.com/search?q="+ keyword + "&tbm=isch");
break;
case 'bing':
openNewWindow("https://cn.bing.com/images/search?q="+ keyword);
break;
case 'pixabay':
openNewWindow("https://pixabay.com/images/search/"+ keyword);
break;
case 'pexels':
openNewWindow("https://www.pexels.com/search/"+ keyword);
break;
case 'freeimages':
openNewWindow("https://cn.freeimages.com/search/"+ keyword);
break;
case 'unsplash':
openNewWindow("https://unsplash.com/search/photos/"+ keyword);
break;
case 'stocksnap':
openNewWindow("https://stocksnap.io/search/"+ keyword);
break;
case 'picjumbo':
openNewWindow("https://picjumbo.com/?s="+ keyword);
break;
case 'visualhunt':
openNewWindow("https://visualhunt.com/search/instant/?q="+ keyword);
break;
case 'everypixel':
openNewWindow("https://www.everypixel.com/search?q="+ keyword +"&stocks_type=free&meaning=&media_type=0&page=1");
break;
case 'gratisography':
openNewWindow("https://gratisography.com/?s="+ keyword);
break;
case 'lifeofpix':
openNewWindow("https://www.lifeofpix.com/search/"+ keyword + "?");
break;
case 'shopify':
openNewWindow("https://burst.shopify.com/photos/search?&q="+ keyword);
break;
case 'chamber':
openNewWindow("https://www.chamberofcommerce.org/findaphoto/search?q="+ keyword);
break;
case 'freemagebank':
openNewWindow("http://www.freemagebank.com/?s="+ keyword);
break;
case 'designerspics':
openNewWindow("http://www.designerspics.com/?s="+ keyword);
break;
case 'freepik':
openNewWindow("https://www.freepik.com/search?query="+ keyword + '&selection=1&sort=popular');
break;
case 'foter':
openNewWindow("https://foter.com/search/instant/?q="+ keyword);
break;
case 'hippopx':
openNewWindow("https://www.hippopx.com/zh/search?q="+ keyword);
break;
case 'colorhub':
openNewWindow("https://colorhub.me/search?tag="+ keyword);
break;
case 'pxhere':
openNewWindow("https://pxhere.com/photos?q="+ keyword);
break;
}
}
function mySelectPNG(name,keyword){
switch(name){
case 'freepngimg':
openNewWindow("https://freepngimg.com/search/?query="+ keyword);
break;
case 'pngmart':
openNewWindow("http://www.pngmart.com/?s="+ keyword);
break;
case 'kisspng':
openNewWindow("https://www.kisspng.com/free/"+ keyword + '.html');
break;
case 'pixelsquid':
openNewWindow("https://www.pixelsquid.com/png/"+ keyword);
break;
case 'pngpix':
openNewWindow("http://www.pngpix.com/?q="+ keyword);
break;
case 'snipstock':
openNewWindow("https://www.snipstock.com/search?q="+ keyword);
break;
case 'hiclipart':
openNewWindow("https://www.hiclipart.com/search?clipart="+ keyword);
break;
case 'pngall':
openNewWindow("http://www.pngall.com/?s="+ keyword);
break;
case 'stickpng':
openNewWindow("https://www.stickpng.com/search?q="+ keyword);
break;
case 'pngimg':
openNewWindow("http://pngimg.com/search/?search="+ keyword);
break;
}
}
function mySelectICO(name,keyword){
switch(name){
case 'iconfont':
openNewWindow("https://www.iconfont.cn/search/index?searchType=icon&q="+ keyword);
break;
case 'flaticon':
openNewWindow("https://www.flaticon.com/search?word="+ keyword);
break;
case 'easyicon':
openNewWindow("https://www.easyicon.net/iconsearch/"+ keyword);
break;
case 'iconshock':
openNewWindow("https://www.iconshock.com/"+ keyword +"-icons");
break;
case 'icons8':
openNewWindow("https://icons8.com/icons/set/"+ keyword);
break;
case 'iconninja':
openNewWindow("http://www.iconninja.com/tag/"+ keyword +"-icon");
break;
}
}
function juhe(objkeyword,objbuttom){
var w = new Array();
var i = 0;
$('.myckJPG .myinput input').each(function(){
if($(this).prop('checked')==true){
i++;
switch($(this).prop('name')){
case 'pixabay':
var selectWord = "pixabay.com";
break;
case 'pexels':
selectWord = "www.pexels.com";
break;
case 'freeimages':
selectWord = "cn.freeimages.com";
break;
case 'unsplash':
selectWord = "unsplash.com";
break;
case 'stocksnap':
selectWord = "stocksnap.io";
break;
case 'picjumbo':
selectWord = "picjumbo.com";
break;
case 'visualhunt':
selectWord = "visualhunt.com";
break;
case 'everypixel':
selectWord = "www.everypixel.com";
break;
case 'gratisography':
selectWord = "gratisography.com";
break;
case 'lifeofpix':
selectWord = "www.lifeofpix.com";
break;
case 'shopify':
selectWord = "burst.shopify.com";
break;
case 'google':
selectWord = "www.google.com";
break;
case 'bing':
selectWord = "cn.bing.com";
break;
case 'chamber':
selectWord = "www.chamberofcommerce.org";
break;
case 'freemagebank':
selectWord = "www.freemagebank.com";
break;
case 'designerspics':
selectWord = "www.designerspics.com";
break;
case 'freepik':
selectWord = "www.freepik.com";
break;
case 'foter':
selectWord = "foter.com";
break;
case 'hippopx':
selectWord = "www.hippopx.com";
break;
case 'colorhub':
selectWord = "colorhub.me";
break;
case 'pxhere':
selectWord = "pxhere.com";
break;
}
w[i] = selectWord;
}
});
//清除site
w[0] = objkeyword.val().replace(eReg,'');
switch(SearchEngine){
case 'google':
switch(i){
case 1:
objkeyword.attr('value',w[0] + ' site:'+ w[1] +')');
break;
case 2:
objkeyword.attr('value',w[0] + ' (site:'+ w[1] +' | site:'+ w[2] +')');
break;
case 3:
objkeyword.attr('value',w[0] + ' (site:'+ w[1] +' | site:'+ w[2] +' | site:'+ w[3] +')');
break;
}
break;
case 'bing':
switch(i){
case 1:
objkeyword.attr('value',w[0] + ' (site:'+ w[1] +')');
break;
case 2:
objkeyword.attr('value',w[0] + ' (site:'+ w[1] +' OR site:'+ w[2] +')');
break;
case 3:
objkeyword.attr('value',w[0] + ' (site:'+ w[1] +' OR site:'+ w[2] +' OR site:'+ w[3] +')');
break;
}
break;
}
objbuttom[0].click();
}
function openNewWindow(webstr) {
let a = $("
").get(0);
let e = document.createEvent('MouseEvents');
e.initEvent( 'click', true, true );
a.dispatchEvent(e);
}
$.fn.hoverDelay = function(options){
var defaults = {
hoverDuring:200,
outDuring:200,
hoverEvent:function(){
$.noop();
},
outEvent:function(){
$.noop();
}
};
var sets = $.extend(defaults,options || {});
var hoverTimer,outTimer;
return $(this).each(function(){
$(this).hover(function(){
clearTimeout(outTimer);
hoverTimer = setTimeout(sets.hoverEvent,sets.hoverDuring);
},function(){
clearTimeout(hoverTimer);
outTimer = setTimeout(sets.outEvent,sets.outDuring);
});
});
}
$('body').on('click','#myJPG',function(){
switch(SearchEngine){
case 'google':
var keyw = $baseAG;
var objbuttom = $('header button[aria-label="Google Search"]');
if(keyw != ''){
if(jh == true){
juhe(keyw,objbuttom);
}else{
$('.myckJPG .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectJPG($(this).prop('name'),keyw.val());
}
});
}
}
break;
case 'bing':
keyw = $('#sb_form_q');
objbuttom = $('#sb_form_go');
if(keyw != ''){
if(jh == true){
juhe(keyw,objbuttom);
}else{
$('.myckJPG .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectJPG($(this).prop('name'),keyw.val());
}
});
}
}
break;
}
});
$('body').on('click','#myPNG',function(){
switch(SearchEngine){
case 'google':
var keyw = $baseAG;
var objbuttom = $('header button[aria-label="Google Search"]');
if(keyw != ''){
$('.myckPNG .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectPNG($(this).prop('name'),keyw.val());
}
});
}
break;
case 'bing':
keyw = $('#sb_form_q');
objbuttom = $('#sb_form_go');
if(keyw != ''){
$('.myckPNG .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectPNG($(this).prop('name'),keyw.val());
}
});
}
break;
}
});
$('body').on('click','#myICO',function(){
switch(SearchEngine){
case 'google':
var keyw = $baseAG;
var objbuttom = $('header button[aria-label="Google Search"]');
if(keyw != ''){
$('.myckICO .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectICO($(this).prop('name'),keyw.val());
}
});
}
break;
case 'bing':
keyw = $('#sb_form_q');
objbuttom = $('#sb_form_go');
if(keyw != ''){
$('.myckICO .myinput input').each(function(){
if($(this).prop('checked')==true){
mySelectICO($(this).prop('name'),keyw.val());
}
});
}
break;
}
});
$("#myJPG").hoverDelay({
hoverDuring:500,
outDuring:500,
hoverEvent: function(){
$('.myckJPG').css('display','inline');
$('.myckPNG').css('display','none');
$('.myckICO').css('display','none');
},
outEvent: function(){
}
});
$("#myPNG").hoverDelay({
hoverDuring:500,
outDuring:500,
hoverEvent: function(){
$('.myckPNG').css('display','inline');
$('.myckJPG').css('display','none');
$('.myckICO').css('display','none');
},
outEvent: function(){
}
});
$("#myICO").hoverDelay({
hoverDuring:500,
outDuring:500,
hoverEvent: function(){
$('.myckICO').css('display','inline');
$('.myckPNG').css('display','none');
$('.myckJPG').css('display','none');
},
outEvent: function(){
}
});
$('body').click(function(){
$('.myckJPG').css('display','none');
$('.myckPNG').css('display','none');
$('.myckICO').css('display','none');
});
$('body').on('click','.myckJPG',function(){
return false;//JS阻止事件冒泡,及不触发外面click事件
});
$('body').on('click','.myckPNG',function(){
return false;//JS阻止事件冒泡,及不触发外面click事件
});
$('body').on('click','.myckICO',function(){
return false;//JS阻止事件冒泡,及不触发外面click事件
});
$('body').on('click','.myinput input',function(){
return false;//JS阻止事件冒泡,及不触发外面click事件
});
$('body').on('click','.myckJPG .myinput',function(){
if($(this).children('input').prop('checked')==true){
$(this).children('input').prop('checked',false);
jhsum--;
if(jhsum<0){
jhsum = 0;
}
}else{
if(jh == true){
if(jhsum<3){
$(this).children('input').prop('checked',true);
jhsum++;
}
}else{
$(this).children('input').prop('checked',true);
}
}
});
$('body').on('click','.myckPNG .myinput',function(){
if($(this).children('input').prop('checked')==true){
$(this).children('input').prop('checked',false);
}else{
$(this).children('input').prop('checked',true);
}
});
$('body').on('click','.myckICO .myinput',function(){
if($(this).children('input').prop('checked')==true){
$(this).children('input').prop('checked',false);
}else{
$(this).children('input').prop('checked',true);
}
});
$('.myckJPG .myinput input').hover(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
jhsum--;
if(jhsum<0){
jhsum = 0;
}
}else{
if(jh == true){
if(jhsum<3){
$(this).prop('checked',true);
jhsum++;
}
}else{
$(this).prop('checked',true);
}
}
},function(){
});
$('.myckPNG .myinput input').hover(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
}else{
$(this).prop('checked',true);
}
},function(){
});
$('.myckICO .myinput input').hover(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
}else{
$(this).prop('checked',true);
}
},function(){
});
$('body').on('click','.mybtnRight',function(){
if($(this).find('input').prop('checked')==true){
jh = true;
jhsum = 3;
$('.myckJPG .myinput input').prop('checked',false);
$('#mySelectAll_J').addClass('myBann');
$('#mySelectInv_J').addClass('myBann');
$('input[name=' + myConfig.JhSelect[0] + ']').prop('checked',true);
$('input[name=' + myConfig.JhSelect[1] + ']').prop('checked',true);
$('input[name=' + myConfig.JhSelect[2] + ']').prop('checked',true);
$('.myckJPG input[name="google"]').parent().css('display','none');
$('.myckJPG input[name="bing"]').parent().css('display','none');
}else{
jh = false;
$('#mySelectAll_J').removeClass('myBann');
$('#mySelectInv_J').removeClass('myBann');
$('.myckJPG input[name="google"]').parent().css('display','inline');
$('.myckJPG input[name="bing"]').parent().css('display','inline');
$('.myckJPG input').each(function(){
$(this).prop('checked',myConfig[$(this).prop('name')]);
});
}
});
$('body').on('click','#mySelectAll_J',function(){
if(jh == false){
$('.myckJPG .myinput input').prop('checked',true);
}
});
$('body').on('click','#mySelectAll_P',function(){
$('.myckPNG .myinput input').prop('checked',true);
});
$('body').on('click','#mySelectAll_I',function(){
$('.myckICO .myinput input').prop('checked',true);
});
$('body').on('click','#mySelectInv_J',function(){
if(jh == false){
$('.myckJPG .myinput input').each(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
}else{
$(this).prop('checked',true);
}
});
}
});
$('body').on('click','#mySelectInv_P',function(){
$('.myckPNG .myinput input').each(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
}else{
$(this).prop('checked',true);
}
});
});
$('body').on('click','#mySelectInv_I',function(){
$('.myckICO .myinput input').each(function(){
if($(this).prop('checked')==true){
$(this).prop('checked',false);
}else{
$(this).prop('checked',true);
}
});
});
$('body').on('click','#mySave_J',function(){
if(jh == false){
$('.myckJPG .myinput input').each(function(){
myConfig[$(this).prop('name')] = $(this).prop('checked');
});
}else{
var jh_s = new Array();
$('.myckJPG .myinput input').each(function(){
if($(this).prop('checked') == true){
jh_s.push($(this).prop('name'));
}
});
myConfig.JhSelect = jh_s;
}
GM_setValue("Config", myConfig);
});
$('body').on('click','#mySave_P',function(){
$('.myckPNG .myinput input').each(function(){
myConfig[$(this).prop('name')] = $(this).prop('checked');
});
GM_setValue("Config", myConfig);
});
$('body').on('click','#mySave_I',function(){
$('.myckICO .myinput input').each(function(){
myConfig[$(this).prop('name')] = $(this).prop('checked');
});
GM_setValue("Config", myConfig);
});
})();