Highlight text in any web page and search for it on eBay with the click of a button.
So you've found an item you like while surfing the web, and it occurs to you that you can probably get it cheaply on eBay. At this point, you've learned that you can highlight the name (or model number) of the product on the page, press Ctrl-C to copy it to the clipboard, then go to eBay, paste it into a search box (Ctrl-V), and press Search to look for matching items. If this scenario sounds familiar, you'll definitely appreciate this shortcut.
Start by creating a new button on your browser's Links bar [Hack #14] , and naming it "Search eBay" or something similar.
Next, if you're using Mozilla, Firefox, or Netscape, place this JavaScript code (all on one line) into the button's location field:
javascript:s=document.getSelection(); for(i=0;i<frames.length;i++){s=frames[i].document.getSelection();} location.href='http://search.ebay.com/'+escape(s);
If you're using Internet Explorer, you'll need this code:
javascript:s=(document.frames.length?'': document.selection.createRange().text); for(i=0;i<document.frames.length;i++) {s=document.frames[i].document.selection.createRange().text;} location.href='http://search.ebay.com/'+escape(s);
Next, open any web page, highlight some text, and click your new search button. The next thing you'll see is a search results page with items matching your selected text.
First, the code fills the variable s
with any currently selected text on the
page. Next, to accommodate frames (exemplified in [Hack
#16] ), the code searches through all frames present
in the current window (if any) and, again, fills s
with any selected text found. Then, the
code executes an eBay search by combining the base search URL [Hack
#13] , http://search.ebay.com/, with the contents of
s
.
If you've spent any time programming JavaScript (introduced in the Preface), you've undoubtedly discovered differences in the support of the language between Internet Explorer and the browsers based on Mozilla (e.g., Firefox and Netscape). (Hint: this is Microsoft's fault.) Thus, regrettably, two versions of the code are needed to support the different browser's methods for retrieving selected text and negotiating frames. Ah, the fun of cross-platform scripting.