Searcher

By JoeSimmons Last update Aug 5, 2008 — Installed 233 times.

There are 1 previous version of this script.

// ==UserScript==
// @name           Searcher
// @namespace      http://www.Tenfold.co.nr
// @description    Adds a link and userscript command to search a page and highlight the result
// @include        *
// @exclude       http://*.youtube.com/watch?v=*
// @exclude       http://youtube.com/watch?v=*
// ==/UserScript==

function lightsOut()
{
	var mediumImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAAA1BMVEUAAACnej3aAAAAAXRSTlPNpTNmawAAAA5JREFUGJVjYBgFgwkAAAGQAAHY85U/AAAAAElFTkSuQmCC";	
	if(!document.getElementById("lightsOut")) {
		var imgLightsOut = document.createElement("img");
		imgLightsOut.src = mediumImg;
		imgLightsOut.setAttribute("id", "lightsOut");
		imgLightsOut.setAttribute("style", "position:absolute;top:0;left:0;width:100%;height:" + document.height + "px;");
		imgLightsOut.addEventListener("click", function () {
					document.body.removeChild(document.getElementById("lightsOut"));
					document.getElementsByTagName("body")[0].innerHTML = bodyText;
			}, false);
		document.body.appendChild(imgLightsOut);
	}}

function searcher()
{

var bodyText, search, searchF, newHTML, h, hStyle;

hStyle = "background : #C6E2FF;"
+        "border : 2px solid #0053A6;"
+        "color : black;"
+        "padding : .1em;"
+        "position : absolute;"
+        "z-index : 9999;"
+        "-moz-border-radius-topright : 6px;"
+        "-moz-border-radius-topleft : 6px;"
+        "-moz-border-radius-bottomright : 6px;"
+        "-moz-border-radius-bottomleft : 6px;"
;

h = "<span style=\""+hStyle+"\" id=\"searchFound\">";

bodyText = document.getElementsByTagName("body")[0].innerHTML;

search = parent.window.prompt("Search term (case sensitive)");

searchF = bodyText.indexOf(search);

newHTML = bodyText.substring(0, searchF) + h + bodyText.substring(searchF, searchF+search.length) + "</span>" + bodyText.substring(searchF+search.length, bodyText.length);

if(searchF !==  -1) {
document.getElementsByTagName("body")[0].innerHTML = newHTML;

// lightsOut from YouTube Lights Out ////////////////////////////////////////////////////
var mediumImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyAQMAAAAk8RryAAAAA1BMVEUAAACnej3aAAAAAXRSTlPNpTNmawAAAA5JREFUGJVjYBgFgwkAAAGQAAHY85U/AAAAAElFTkSuQmCC";	
	if(!document.getElementById("lightsOut")) {
		var imgLightsOut = document.createElement("img");
		imgLightsOut.src = mediumImg;
		imgLightsOut.setAttribute("id", "lightsOut");
		imgLightsOut.setAttribute("style", "position:absolute;top:0;left:0;width:100%;height:" + document.height + "px;");
		imgLightsOut.addEventListener("click", function () {
					document.body.removeChild(document.getElementById("lightsOut"));
					document.getElementsByTagName("body")[0].innerHTML = bodyText;
					if(document.getElementById("searcher")) document.getElementById("searcher").addEventListener("click", searcher, false);
			}, false);
		document.getElementById("searchFound").addEventListener("click", function () {
					document.body.removeChild(document.getElementById("lightsOut"));
					document.getElementsByTagName("body")[0].innerHTML = bodyText;
					if(document.getElementById("searcher")) document.getElementById("searcher").addEventListener("click", searcher, false);
			}, false);
		document.body.appendChild(imgLightsOut);
	}
/////////////////////////////////////////////////////////////////////////////////////////
}
else alert("Term not found.");

}
  
GM_registerMenuCommand("Search", searcher);

var s = document.createElement("a");
s.setAttribute("style", "position:absolute; top:0px; right:0px; font-size: 12px;");
s.setAttribute("id", "searcher");
s.href = "javascript:void(0);";
s.appendChild(document.createTextNode("Search"));
s.addEventListener("click", searcher, false);
document.getElementsByTagName("body")[0].appendChild(s);