// ==UserScript== // @name Locate Keywords in Search Engine Results // @filename locate-keywords.user.js // @author Alex Hall // @homepage http://www.devseo.co.uk/ // @namespace http://www.devseo.co.uk/blog/view/locate-keywords-in-search-engine-results // @version 1.0.1 // @description Locate specific keywofds easily within the business description of results in a Google, Yahoo!, or Bing Search // @include http://www.google.com/search* // @include http://google.com/search* // @include http://www.google.co.uk/search* // @include http://google.co.uk/search* // @include http://uk.search.yahoo.com/search* // @include http://search.yahoo.com/* // @include http://bing.com/search* // @include http://www.bing.com/search* // ==/UserScript== //***********************BEGIN CONFIGURATION**********************// // Set the array of keyphrases you wish to locate // syntax [['a keyword', 'acolor'], ['keyword number 2', 'acolor'], ['keyword 3', 'acolor']]; // Set the color variable to the background color you wish to use to highlight your keyphrase (defaults to yellow) var keywords = [ ['website', '#F00'], ['development', '#CCC'], ['devseo', '#5090D0'] ]; var keywordLen = keywords.length; //************************END CONFIGURATION***********************// //*******************DO NOT EDIT PAST THIS LINE*******************// //****************UNLESS YOU KNOW WHAT YOU'RE DOING***************// var all_divs = document.getElementsByTagName('div'); var divLen = all_divs.length; if (location.hostname.indexOf("google.com")!=-1) { for (i=0; i', '', descText); descText = str_replace('', '', descText); var textSplit = descText.split('
'); descText = textSplit[0]; var j=0; while(j'+keywords[j][0].toLowerCase()+'', descText.toLowerCase()); } j++; } var newDiv = document.createElement('span'); newDiv.innerHTML = descText; all_divs[i].replaceChild(newDiv, all_divs[i].childNodes[0]); } } else if (location.hostname.indexOf("google.co.uk")!=-1) { for (i=0; i', '', descText); descText = str_replace('', '', descText); descText = str_replace('', '', descText); descText = str_replace('', '', descText); all_divs[i].innerHTML = descText; var textSplit = descText.split('
'); descText = textSplit[0]; var j=0; while(j'+keywords[j][0].toLowerCase()+'', descText.toLowerCase()); } j++; } var newDiv = document.createElement('span'); newDiv.innerHTML = descText; all_divs[i].replaceChild(newDiv, all_divs[i].childNodes[0]); } } else if (location.hostname.indexOf("yahoo.com")!=-1) { for (i=0; i', '', descText); descText = str_replace('', '', descText); var j=0; while(j'+keywords[j][0].toLowerCase()+'', descText.toLowerCase()); } j++; } all_divs[i].innerHTML = descText; } } else if (location.hostname.indexOf("bing.com")!=-1) { var all_uls=document.getElementsByTagName('ul'); var ulsLen = all_uls.length; for (i=0; i', '', descText); descText = str_replace('', '', descText); var j=0; while(j'+keywords[j][0].toLowerCase()+'', descText.toLowerCase()); } j++; } pNode.innerHTML = descText; } } function str_replace (search, replace, subject, count) { var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0, f = [].concat(search), r = [].concat(replace), s = subject, ra = r instanceof Array, sa = s instanceof Array; s = [].concat(s); if (count) { this.window[count] = 0; } for (i=0, sl=s.length; i < sl; i++) { if (s[i] === '') { continue; } for (j=0, fl=f.length; j < fl; j++) { temp = s[i]+''; repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]; s[i] = (temp).split(f[j]).join(repl); if (count && s[i] !== temp) { this.window[count] += (temp.length-s[i].length)/f[j].length;} } } return sa ? s : s[0]; } function strstr (haystack, needle, bool) { var pos = 0; haystack += ''; pos = haystack.indexOf( needle ); if (pos == -1) { return false; } else{ if (bool){ return haystack.substr( 0, pos ); } else{ return haystack.slice( pos ); } } }