MozillaZine

Multiple parameter keyword searches

From MozillaZine Knowledge Base

For basics of keyword searches, refer to Using keyword searches.

Contents

Creating a keyword search with multiple parameters

Copy/Paste the following string in your bookmark's Location field. Don't forget to replace ###INSERT YOUR KEYWORD SEARCH URL HERE### with your search URL, which can now include multiple %s occurences.

javascript:var%C2%A0s='%s'; url='###INSERT YOUR KEYWORD SEARCH URL HERE###'; t=''; qc=0; chunks=url.split('%s'); for(i=0; i<s.length; i++){if(s.charAt(i)=='"')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined)%C2%A0{args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'< BR>');

(The script was was copied from an attachment in bug 124237 in Bugzilla.)

Usage

Just type this in Location Bar:

search_keyword param1 param2 ...

If one parameter contains spaces put it inside quotes.

Examples

finance.yahoo.com

If we would want to compare the performance of two stocks using an URL similar to this: http://finance.yahoo.com/q/bc?t=6m&s=%s&c=%s

The bookmark URL would be

javascript:var%C2%A0s='%s'; url='http://finance.yahoo.com/q/bc?t=6m&s=%s&c=%s'; t=''; qc=0; chunks=url.split('%s'); for(i=0; i<s.length; i++){if(s.charAt(i)=='"')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined)%C2%A0{args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'< BR>');

If you chose the keyword compare you could compare Redhat's performance with Microsoft by writing

compare rht msft

Googlefight

Another example given the url for a googlefight: http://www.googlefight.com/cgi-bin/compare.pl?q1=%s&q2=%s&B1=Make+a+fight%21&compare=1&langue=us

And the bookmark would be

javascript:var%C2%A0s='%s'; url='http://www.googlefight.com/cgi-bin/compare.pl?q1=%s&q2=%s&B1=Make+a+fight%21&compare=1&langue=us'; t=''; qc=0; chunks=url.split('%s'); for(i=0; i<s.length; i++){if(s.charAt(i)=='"')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined)%C2%A0{args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'< BR> ');

With the keyword fight you could do a search like

fight "United States" Finland