您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Filter Personalvermittlungen und Zeitarbeitsfirmen
// ==UserScript== // @name Jobfilter // @namespace http://userscripts.org/users/75950 // @description Filter Personalvermittlungen und Zeitarbeitsfirmen // @include https://jobboerse.arbeitsagentur.de/vamJB/stellenangeboteFinden.html* // @include http://jobboerse.arbeitsagentur.de/vamJB/stellenangeboteFinden.html* // @include http://www.jobinfo24.de/forum/* // @include http://www.jobmonitor.com/jobs-stellenangebote/* // @include http://www.jobomat.de/main?* // @include https://arbeit-regional.de/arbeitregional/* // @include http://www.stellenanbieter.de/?id=* // @include http://online-stellenmarkt.net/index.php?suche=* // @include http://www.online-stellenmarkt.net/index.php?suche=* // @include http://jobturbo.de/metasuche.aspx?* // @include http://www.indeed.de/Jobs?* // @include http://www.jobscout24.de/Jobs_Ergebnisliste.html?* // @include https://www.jobscout24.de/Jobs_Ergebnisliste.html?* // @version 3.3.1 // ==/UserScript== var theUngeraden = null; var theGeraden = null; var theCommon = null; if(document.domain=='www.jobscout24.de') { theUngeraden = document.getElementsByClassName('vacancyItemContentStandardWhite'); theGeraden = document.getElementsByClassName('vacancyItemContentStandardHighlighted'); theCommon = document.getElementsByClassName('vacancyItemContentJobsDe'); } if(document.domain=='jobboerse.arbeitsagentur.de') { theUngeraden = document.getElementsByClassName('ungerade'); theGeraden = document.getElementsByClassName('gerade'); } if(document.domain=='www.jobinfo24.de') { theUngeraden = document.getElementsByClassName('mod_row1'); theGeraden = document.getElementsByClassName('mod_row2'); } if(document.domain=='www.jobmonitor.com') { theUngeraden = document.getElementsByClassName('searchList'); } if(document.domain=='www.jobomat.de') { theUngeraden = document.getElementsByClassName('trli'); } if(document.domain=='arbeit-regional.de') { theUngeraden = document.getElementsByClassName('datatable')[0].getElementsByTagName('tbody')[0].getElementsByTagName('tr'); } if(document.domain=='www.stellenanbieter.de') { theUngeraden = document.getElementsByClassName('zeile-odd'); theGeraden = document.getElementsByClassName('zeile'); } if(document.domain=='online-stellenmarkt.net' || document.domain=='www.online-stellenmarkt.net') { theUngeraden = document.getElementsByClassName('sttable'); } if(document.domain=='jobturbo.de') { theUngeraden = document.getElementById('ctl00_ContentPlaceHolder1_DataList_JobList').getElementsByTagName('tr'); } if(document.domain=='www.indeed.de') { theUngeraden = document.getElementsByClassName('row'); } var theFilter = ['Personal', 'Call', 'Zeit', 'Time', 'Agentur', 'M. Thiele', 'Plettenberg', 'Arbeitsvermittlung', 'Buscha', 'Fleischmann-Hahn', 'together group', 'jobs nach mass', 'Deutsche Angestellten Akademie', 'AKPM', 'Sitel', 'K&S-Kommunikation & Service GmbH', 'maXXu GmbH', 'i-potentials GmbH', 'Premium Consultants', 'Mairinger', 'Expero', 'Randstad', 'Permacon', 'Allround Service', 'riedel-personal', 'PRIMAJOB AG', 'FRANZ & WACH', 'STF Placement', 'persona service', 'Scheerbaums Erben', 'Kelly Services', 'Education Campus', 'PersOrange', 'Manpower', 'Job@ctive', 'headwayengineers', 'AlphaConsult', 'AGO', 'DIE WEGBEREITER', 'Bic Consult', 'serviceline', 'www.fairnes-work.de', 'yd. yourdelivery UG', 'KundS', 'Perso Plankontor', 'TEMPTON']; var theAction = 'Ausblenden'; if(GM_getValue('filter')) { theFilter = JSON.parse(GM_getValue('filter')); } else { GM_setValue('filter', JSON.stringify(theFilter)); } if(GM_getValue('action')) { theAction = GM_getValue('action'); } else { GM_setValue('action', 'Ausblenden'); } for(i=0; i<theUngeraden.length; i++) { for(j=0; j<theFilter.length; j++) { if(theUngeraden[i].textContent.indexOf(theFilter[j]) != -1) { switch(theAction) { case 'Ausblenden': theUngeraden[i].style.display = 'none';break; case 'Farbig hinterlegen': theUngeraden[i].style.backgroundColor = 'orange'; var theTD = theUngeraden[i].getElementsByTagName('td'); for(k=0; k<theTD.length; k++) theTD[k].style.backgroundColor = 'orange'; break; } } } } if(theGeraden) for(i=0; i<theGeraden.length; i++) { for(j=0; j<theFilter.length; j++) { if(theGeraden[i].textContent.indexOf(theFilter[j]) != -1) { switch(theAction) { case 'Ausblenden': theGeraden[i].style.display = 'none';break; case 'Farbig hinterlegen': theGeraden[i].style.backgroundColor = 'orange'; var theTD = theGeraden[i].getElementsByTagName('td'); for(k=0; k<theTD.length; k++) theTD[k].style.backgroundColor = 'orange'; break; } } } } if(theCommon) for(i=0; i<theCommon.length; i++) { for(j=0; j<theFilter.length; j++) { if(theCommon[i].textContent.indexOf(theFilter[j]) != -1) { switch(theAction) { case 'Ausblenden': theCommon[i].style.display = 'none';break; case 'Farbig hinterlegen': theCommon[i].style.backgroundColor = 'orange'; var theTD = theCommon[i].getElementsByTagName('td'); for(k=0; k<theTD.length; k++) theTD[k].style.backgroundColor = 'orange'; break; } } } } // SCRIPT USERSCRIPT PREFERENCES // VERSION 1.0.4deutsch jobboerse // Shows a div-Window and darkens the page for userscript preference values var USP = { node: null, darken: null, valueList: null, theScriptName: 'Jobfilter', prefPrefix: '', isVisible: false, CSS: ''+ '#US-prefs,#US-prefs *{font-size:12px;font-weight:normal;font-style:normal;font-family:tahoma,arial,sans-serif;color:#000;text-transform:none;text-decoration:none;letter-spacing:normal;word-spacing:normal;line-height:normal;vertical-align:baseline;direction:ltr;background:transparent none repeat scroll 0 0;opacity:1;position:static;visibility:visible;z-index:auto;overflow:visible;white-space:normal;clip:auto;float:none;clear:none;cursor:auto;text-align:center}/*preserve defaults*/\n\n'+ '#US-prefs{display:block;position:fixed;z-index:999;border:1px solid #000;-moz-border-radius:5px;background:rgb(180,180,180) none;color:#FFF0CF;width:400px}\n'+ '#US-darken,#US-darken *{background:transparent none repeat scroll 0 0;opacity:0.7;position:static;visibility:visible;z-index:auto;overflow:visible;white-space:normal;clip:auto;float:none;clear:none;cursor:auto}/*preserve defaults*/\n\n'+ '#US-darken{height:100%;width:100%;display:block;position:fixed;z-index:998;background:rgb(0,0,0) none}\n'+ ' #US-prefs>h1{text-align:center;display:block;font-size:2em;font-weight:normal;border:0;margin:0;padding:0}\n'+ ' #US-prefs p{display:block;margin:5px 10px 1em 5px;font-family:arial,sans-serif}\n'+ ' #US-prefs p>b{font-weight:bold}\n'+ ' #US-prefs>div{display:block;width:300px;margin:0 auto;text-align:right;}\n'+ ' #US-prefs>div>div{display:block;width:300px;margin:0 auto;text-align:center}\n'+ ' .US-radio{margin:0.2em auto !important;padding:2px 2px;border:1px solid #000;-moz-border-radius:3px;}\n'+ ' .US-radio div{display:block;width:100%;margin:0 auto;text-align:left !important;font-weight:bold !important}\n'+ ' #US-prefs input, #US-prefs select{width: auto;text-align:left;margin:0.7em 0;padding:0 6px;background:#FFE1A2;border:1px solid #000;-moz-border-radius:4px;border-color:#5F3E00 #5F3E00 #000 #5F3E00;font-family:verdana,arial,sans-serif}\n'+ ' #US-prefs>div>div input{margin:0 0;padding:0 0;background:#FFE1A2;border:1px solid #000;-moz-border-radius:4px;border-color:#5F3E00 #5F3E00 #000 #5F3E00;font-family:verdana,arial,sans-serif}', init: function() { var theStyle=document.createElement("style"); USP.valueList=arguments; theStyle.setAttribute('type','text/css'); //document.body.appendChild(theStyle).innerHTML=USP.CSS; document.getElementsByTagName('head')[0].appendChild(theStyle).innerHTML=USP.CSS; USP.prefPrefix='\n <h1>Userscript Optionen</h1>\n <p>Bitte nehmen Sie Ihre Einstellungen vor für das Skript<br><b>'+USP.theScriptName+'</b></p>\n<div class="USP-values"></div><input class="button" type="button" value="Speichern"> <input class="button" type="button" value="Speichern & Neu laden"> <input class="button" type="button" value="Abbrechen"><br><input class="button" type="button" value="Updates?">\n'; USP.node=document.createElement("div"); USP.node.innerHTML='<div>'+USP.prefPrefix+'</div>'; USP.node=USP.node.firstChild; USP.node.id="US-prefs"; USP.node.parentNode.removeChild(USP.node); USP.darken=document.createElement("div"); USP.darken.innerHTML='<div></div>'; USP.darken=USP.darken.firstChild; USP.darken.id="US-darken"; USP.darken.parentNode.removeChild(USP.darken); }, cb:{}, EL: function(e) { var E=e.type.toLowerCase().replace(/^on/i,""),i=0,n=e.target; if(!USP.cb[E])return; for(;i<USP.cb[E].length;i++) { if(USP.cb[E][i][0]==n) return USP.cb[E][i][1].call(n,e) }// no callbacks found }, addEventListener: function(n,E,f) { if(!n+!f)return !1; if(!USP.cb[E]){USP.cb[E]=[];USP.node.addEventListener(E,function(e){USP.EL(e)},!0)} USP.cb[E].push([n,f]); return !0; }, removeEventListener: function(n,E,f) { if(!n+!E+!f+!USP.cb[E])return; for(var i=0;i<USP.cb[E].length;i++) { if(USP.cb[E][i][0]==n&&USP.cb[E][i][1]==f)return !(USP.cb[E].splice(i,1))||undefined; } }, showWindow: function (){ document.body.appendChild(USP.darken); document.body.appendChild(USP.node); USP.isVisible=true; }, styleWindow: function() { if(typeof SVC=='undefined') { USP.node.getElementsByClassName("button")[3].style.display='none'; } if(USP.valueList.length==0) { USP.node.getElementsByClassName("button")[0].style.display='none'; USP.node.getElementsByClassName("button")[1].style.display='none'; } USP.darken.style.left=USP.darken.style.top="50%"; USP.darken.style.marginLeft=-(USP.darken.offsetWidth/2)+"px"; USP.darken.style.marginTop=-(USP.darken.offsetHeight/2)+"px"; USP.node.style.left=USP.node.style.top="50%"; USP.node.style.marginLeft=-(USP.node.offsetWidth/2)+"px"; USP.node.style.marginTop=-(USP.node.offsetHeight/2)+"px"; if(USP.valueList.length>0) { USP.addEventListener(USP.node.getElementsByClassName("button")[0],"click",USP.saveValues); USP.addEventListener(USP.node.getElementsByClassName("button")[1],"click",USP.saveValuesAndReload); } USP.addEventListener(USP.node.getElementsByClassName("button")[2],"click",USP.killWindow); for(var i=0; i<USP.valueList.length; i++) { if(typeof USP.valueList[i].theDefault=='object' && USP.valueList[i].theDefault.length) { USP.addEventListener(USP.node.getElementsByClassName("USP-DelButton"+i)[0],"click",function() { // Delete button clicked var theValueNumber = this.className.substring(13); for(var j=0; j<USP.node.getElementsByClassName('USP-field'+theValueNumber).length; j++) { if(USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].selected) { USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].parentNode.removeChild(USP.node.getElementsByClassName('USP-field'+theValueNumber)[j]); } } }); USP.addEventListener(USP.node.getElementsByClassName("USP-AddButton"+i)[0],"click",function() { // Add button clicked var theValueNumber = this.className.substring(13); var theNewValue=USP.node.getElementsByClassName('USP-AddText'+theValueNumber)[0].value; if(theNewValue!='') { var theCurrentSelect=USP.node.getElementsByClassName('USP-select'+theValueNumber)[0]; theCurrentSelect.innerHTML+='<option class="USP-field'+theValueNumber+'" value="'+theNewValue+'">'+theNewValue+'</option>'; USP.node.getElementsByClassName('USP-AddText'+theValueNumber)[0].value=''; } }); USP.addEventListener(USP.node.getElementsByClassName("USP-EdtButton"+i)[0],"click",function() { // Edit button clicked, same as Delete button but edit field will be filled var theValueNumber = this.className.substring(13); var theOldValue = ''; for(var j=0; j<USP.node.getElementsByClassName('USP-field'+theValueNumber).length; j++) { if(USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].selected) { theOldValue = USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].value; USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].parentNode.removeChild(USP.node.getElementsByClassName('USP-field'+theValueNumber)[j]); } } USP.node.getElementsByClassName('USP-AddText'+theValueNumber)[0].value = theOldValue; }); USP.addEventListener(USP.node.getElementsByClassName("USP-SrtButton"+i)[0],"click",function() { // Sort button clicked var theValueNumber = this.className.substring(13); USP.node.getElementsByClassName('USP-select'+theValueNumber)[0].style.backgroundColor = 'lightgrey'; window.setTimeout(function() { for(var j=0; j<(USP.node.getElementsByClassName('USP-field'+theValueNumber).length-1); j++) { for(var k=j+1; k<USP.node.getElementsByClassName('USP-field'+theValueNumber).length; k++) { var erster = USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].value; var zweiter = USP.node.getElementsByClassName('USP-field'+theValueNumber)[k].value; if(erster.toLowerCase()>zweiter.toLowerCase()) { //Tauschen USP.node.getElementsByClassName('USP-field'+theValueNumber)[k].value = erster; USP.node.getElementsByClassName('USP-field'+theValueNumber)[k].innerHTML = erster; USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].value = zweiter; USP.node.getElementsByClassName('USP-field'+theValueNumber)[j].innerHTML = zweiter; } } } USP.node.getElementsByClassName('USP-select'+theValueNumber)[0].style.backgroundColor = ''; }, 100); }); } } if(typeof SVC!='undefined') USP.addEventListener(USP.node.getElementsByClassName("button")[3],"click",SVC.versionInfo.manualChecking); }, killWindow: function(){ USP.node.innerHTML=USP.prefPrefix; USP.node.parentNode.removeChild(USP.node); USP.darken.parentNode.removeChild(USP.darken); USP.isVisible=false; }, saveValues: function(){ var newValue; for(var i=0;i<USP.valueList.length;i++) { switch(typeof USP.valueList[i].theDefault) { case 'boolean': newValue=USP.node.getElementsByClassName('USP-field'+i)[0].checked; break; case 'number': newValue=parseInt(USP.node.getElementsByClassName('USP-field'+i)[0].value); break; case 'string': if(USP.valueList[i].theValues) { for(var j=0; j<USP.node.getElementsByClassName('USP-field'+i).length; j++) { if(USP.node.getElementsByClassName('USP-field'+i)[j].checked) newValue=USP.node.getElementsByClassName('USP-field'+i)[j].value; } } else { newValue=USP.node.getElementsByClassName('USP-field'+i)[0].value; } break; case 'object': if(USP.valueList[i].theDefault.length) { // construct a JSON string from option Array newValue = '['; for(var j=0; j<USP.node.getElementsByClassName('USP-field'+i).length; j++) { newValue += '"'+USP.node.getElementsByClassName('USP-field'+i)[j].value+'",'; } if(USP.node.getElementsByClassName('USP-field'+i).length == 0) { newValue = '[]'; } else { newValue = newValue.substring(0, newValue.length-1) + ']'; } } break; } GM_setValue(USP.valueList[i].theName, newValue); } USP.killWindow(); }, saveValuesAndReload: function(){ USP.saveValues(); window.location.reload(); }, getValue: function(valueName){ if(GM_getValue(valueName) != undefined) { var PrefValue = GM_getValue(valueName); for(var i=0;i<USP.valueList.length;i++) { if(USP.valueList[i].theName==valueName && typeof USP.valueList[i].theDefault=='object' && USP.valueList[i].theDefault.length) PrefValue = eval(' '+PrefValue+' '); } return PrefValue; } else { for(var i=0;i<USP.valueList.length;i++) { if(USP.valueList[i].theName==valueName) return USP.valueList[i].theDefault; } } }, invoke: function(){ if(!USP.isVisible) { USP.showWindow(); for(var i=0;i<USP.valueList.length;i++) { var curVal; if(GM_getValue(USP.valueList[i].theName)!=undefined) { curVal=GM_getValue(USP.valueList[i].theName); if(typeof USP.valueList[i].theDefault=='object' && USP.valueList[i].theDefault.length) { // eval JSON string if theDefault is an Array curVal = eval(' '+curVal+' '); } } else { curVal=USP.valueList[i].theDefault; } switch(typeof USP.valueList[i].theDefault) { case 'boolean': var isChecked=''; if(curVal) isChecked=' checked'; USP.node.getElementsByClassName('USP-values')[0].innerHTML+='<div>'+USP.valueList[i].theText+' <input class="USP-field'+i+'" type="checkbox" name="'+USP.valueList[i].theName+'"'+isChecked+'></div><br>'; break; case 'number': case 'string': if(USP.valueList[i].theValues) { var newDiv=document.createElement('div'); newDiv.setAttribute('class', 'US-radio'); newDiv.innerHTML='<div>'+USP.valueList[i].theText+'</div>'; var isChecked; for(var j=0; j<USP.valueList[i].theValues.length; j++) { if(USP.valueList[i].theValues[j]==curVal) {isChecked=' checked';} else {isChecked='';} newDiv.innerHTML+='<p><input class="USP-field'+i+'" type="radio" name="'+USP.valueList[i].theName+'" value="'+USP.valueList[i].theValues[j]+'"'+isChecked+'> '+USP.valueList[i].theValues[j]+'</p>'; } USP.node.getElementsByClassName('USP-values')[0].appendChild(newDiv); } else { USP.node.getElementsByClassName('USP-values')[0].innerHTML+=USP.valueList[i].theText+' <input class="USP-field'+i+'" type="text" size="30" name="'+USP.valueList[i].theName+'" value="'+curVal+'"><br>'; } break; case 'object': if(USP.valueList[i].theDefault.length) { // An object with length is an Array var newDiv=document.createElement('div'); newDiv.setAttribute('class', 'US-radio'); newDiv.innerHTML='<div>'+USP.valueList[i].theText+'</div>'; var newSelect=document.createElement('select'); newSelect.setAttribute('name',USP.valueList[i].theName); newSelect.setAttribute('size', '5'); newSelect.setAttribute('class', 'USP-select'+i); for(var j=0; j<curVal.length; j++) { newSelect.innerHTML+='<option class="USP-field'+i+'" value="'+curVal[j]+'">'+curVal[j]+'</option>'; } newDiv.appendChild(newSelect); newDiv.innerHTML+='<br />'; var newButton = document.createElement('input'); newButton.setAttribute('type', 'button'); newButton.setAttribute('value', 'X'); newButton.setAttribute('class', 'USP-DelButton'+i); newDiv.appendChild(newButton); newDiv.innerHTML+=' '; newButton = document.createElement('input'); newButton.setAttribute('type', 'button'); newButton.setAttribute('value', '^'); newButton.setAttribute('class', 'USP-AddButton'+i); newDiv.appendChild(newButton); newDiv.innerHTML+=' '; newButton = document.createElement('input'); newButton.setAttribute('type', 'button'); newButton.setAttribute('value', 'v'); newButton.setAttribute('class', 'USP-EdtButton'+i); newDiv.appendChild(newButton); newDiv.innerHTML+=' '; newButton = document.createElement('input'); newButton.setAttribute('type', 'button'); newButton.setAttribute('value', 'A-Z'); newButton.setAttribute('class', 'USP-SrtButton'+i); newDiv.appendChild(newButton); newDiv.innerHTML+='<br />'; var newText = document.createElement('input'); newText.setAttribute('type', 'text'); newText.setAttribute('class', 'USP-AddText'+i); newDiv.appendChild(newText); USP.node.getElementsByClassName('USP-values')[0].appendChild(newDiv); } break; } } USP.styleWindow(); } } }; window.addEventListener( 'load', function () { // The type of 'theDefault' determines the type of the preference value USP.init({ theName:'filter', theText:'Filter:', theDefault:['Personal', 'Call', 'Zeit', 'Time', 'Agentur', 'M. Thiele', 'Plettenberg', 'Arbeitsvermittlung', 'Buscha', 'Fleischmann-Hahn', 'together group', 'jobs nach mass', 'Deutsche Angestellten Akademie', 'AKPM', 'Sitel', 'K&S-Kommunikation & Service GmbH', 'maXXu GmbH', 'i-potentials GmbH', 'Premium Consultants', 'Mairinger', 'Expero', 'Randstad', 'Permacon', 'Allround Service', 'riedel-personal', 'PRIMAJOB AG', 'FRANZ & WACH', 'STF Placement', 'persona service', 'Scheerbaums Erben', 'Kelly Services', 'Education Campus', 'PersOrange', 'Manpower', 'Job@ctive', 'headwayengineers', 'AlphaConsult', 'AGO', 'DIE WEGBEREITER', 'Bic Consult', 'serviceline', 'www.fairnes-work.de', 'yd. yourdelivery UG', 'KundS', 'Perso Plankontor', 'TEMPTON'] }, { theName:'action', theText:'Gefilterte Anbieter', theValues:['Ausblenden', 'Farbig hinterlegen'], theDefault:'Ausblenden' } ); GM_registerMenuCommand('Optionen des ~'+USP.theScriptName+'~', USP.invoke); }, true);